diff --git a/vscode-web-ext/dist/web/extension.js b/vscode-web-ext/dist/web/extension.js index 2136eae..4416795 100644 --- a/vscode-web-ext/dist/web/extension.js +++ b/vscode-web-ext/dist/web/extension.js @@ -1,1194 +1 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((module) => { - -module.exports = require("vscode"); - -/***/ }), -/* 2 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FileSystemWrapper = void 0; -const vscode = __webpack_require__(1); -const fileSystemWrapperBase_1 = __webpack_require__(3); -class FileSystemWrapper extends fileSystemWrapperBase_1.FileSystemWrapperBase { - joinPath(path1, path2) { - return vscode.Uri.joinPath(vscode.Uri.parse(path1), path2).toString(); - } - dirName(path1) { - const i = path1.lastIndexOf('/'); - if (i < 0) { - throw new Error(`Failed to extract parent folder name from path ${path1}. The path does not contain a separator.`); - } - return path1.substring(0, i); - } - async readFile(path) { - const uri = vscode.Uri.parse(path); - const bytes = await vscode.workspace.fs.readFile(uri); - return new TextDecoder().decode(bytes); - } - async isDirectory(path) { - const uri = vscode.Uri.parse(path); - const stat = await vscode.workspace.fs.stat(uri); - return stat.type === vscode.FileType.Directory; - } - async readDir(path) { - const uri = vscode.Uri.parse(path); - const files = await vscode.workspace.fs.readDirectory(uri); - return files.map(f => f[0]); - } - async pathExists(path) { - const uri = vscode.Uri.parse(path); - try { - const stat = await vscode.workspace.fs.stat(uri); - return stat.type === vscode.FileType.File || stat.type === vscode.FileType.Directory; - } - catch (err) { - return false; - } - } -} -exports.FileSystemWrapper = FileSystemWrapper; - - -/***/ }), -/* 3 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FileSystemWrapperBase = void 0; -const traverseFunctionProjectUtils_1 = __webpack_require__(4); -const ExcludedFolders = ['node_modules', 'target', 'bin', 'obj', '.vs', '.vscode', '.env', '.python_packages', '.git', '.github']; -class FileSystemWrapperBase { - async readFunctionsJson(hostJsonFolder, log) { - let functions = {}; - // Reading function.json files, in parallel - const promises = (await this.readDir(hostJsonFolder)).map(async (functionName) => { - const fullPath = this.joinPath(hostJsonFolder, functionName); - const functionJsonFilePath = this.joinPath(fullPath, 'function.json'); - const isDirectory = await this.isDirectory(fullPath); - const functionJsonExists = await this.pathExists(functionJsonFilePath); - if (isDirectory && functionJsonExists) { - try { - const functionJsonString = await this.readFile(functionJsonFilePath); - const functionJson = JSON.parse(functionJsonString); - functions[functionName] = { bindings: functionJson.bindings, isCalledBy: [], isSignalledBy: [] }; - } - catch (err) { - log(`>>> Failed to parse ${functionJsonFilePath}: ${err}`); - } - } - }); - await Promise.all(promises); - return functions; - } - async readProxiesJson(projectFolder, log) { - const proxiesJsonPath = this.joinPath(projectFolder, 'proxies.json'); - if (!(await this.pathExists(proxiesJsonPath))) { - return {}; - } - const proxiesJsonString = await this.readFile(proxiesJsonPath); - try { - const proxies = JSON.parse(proxiesJsonString).proxies; - if (!proxies) { - return {}; - } - var notAddedToCsProjFile = false; - if (await this.isCSharpProjectAsync(projectFolder)) { - // Also checking that proxies.json is added to .csproj file - const csProjFile = await this.findFileRecursivelyAsync(projectFolder, '.+\\.csproj$', true); - const proxiesJsonEntryRegex = new RegExp(`\\s*=\\s*"proxies.json"\\s*>`); - if (!!csProjFile && csProjFile.code && (!proxiesJsonEntryRegex.exec(csProjFile.code))) { - notAddedToCsProjFile = true; - } - } - // Also adding filePath and lineNr - for (var proxyName in proxies) { - const proxy = proxies[proxyName]; - proxy.filePath = proxiesJsonPath; - if (notAddedToCsProjFile) { - proxy.warningNotAddedToCsProjFile = true; - } - const proxyNameRegex = new RegExp(`"${proxyName}"\\s*:`); - const match = proxyNameRegex.exec(proxiesJsonString); - if (!!match) { - proxy.pos = match.index; - proxy.lineNr = (0, traverseFunctionProjectUtils_1.posToLineNr)(proxiesJsonString, proxy.pos); - } - } - return proxies; - } - catch (err) { - log(`>>> Failed to parse ${proxiesJsonPath}: ${err}`); - return {}; - } - } - async isCSharpProjectAsync(projectFolder) { - return (await this.readDir(projectFolder)).some(fn => { - fn = fn.toLowerCase(); - return (fn.endsWith('.csproj') && fn !== 'extensions.csproj'); - }); - } - async isFSharpProjectAsync(projectFolder) { - return (await this.readDir(projectFolder)).some(fn => { - fn = fn.toLowerCase(); - return fn.endsWith('.fsproj'); - }); - } - async isJavaProjectAsync(projectFolder) { - const javaFileMatch = await this.findFileRecursivelyAsync(projectFolder, `.+\\.java$`, false); - return !!javaFileMatch; - } - async findFileRecursivelyAsync(folder, fileName, returnFileContents, pattern) { - const fileNameRegex = typeof fileName === 'string' ? new RegExp(fileName, 'i') : fileName; - const subFolders = []; - for (const name of await this.readDir(folder)) { - const fullPath = this.joinPath(folder, name); - const isDirectory = await this.isDirectory(fullPath); - if (!!isDirectory) { - if (!ExcludedFolders.includes(name.toLowerCase())) { - subFolders.push(fullPath); - } - } - else if (!!fileNameRegex.exec(name)) { - if (!pattern) { - return { - filePath: fullPath, - code: returnFileContents ? (await this.readFile(fullPath)) : undefined - }; - } - const code = await this.readFile(fullPath); - const match = pattern.exec(code); - if (!!match) { - return { - filePath: fullPath, - code: returnFileContents ? code : undefined, - pos: match.index, - length: match[0].length - }; - } - } - } - // Now recursively trying subfolders. Doing this _after_ checking the current folder. - for (const subFolder of subFolders) { - const result = await this.findFileRecursivelyAsync(subFolder, fileNameRegex, returnFileContents, pattern); - if (!!result) { - return result; - } - } - return undefined; - } - async *findFilesRecursivelyAsync(folder, fileNameRegex) { - for (const name of await this.readDir(folder)) { - var fullPath = this.joinPath(folder, name); - const isDirectory = await this.isDirectory(fullPath); - if (!!isDirectory) { - if (ExcludedFolders.includes(name.toLowerCase())) { - continue; - } - for await (const path of this.findFilesRecursivelyAsync(fullPath, fileNameRegex)) { - yield path; - } - } - else if (!!fileNameRegex.exec(name)) { - yield fullPath; - } - } - } - async *findFunctionsRecursivelyAsync(folder, fileNameRegex, functionAttributeRegex, functionNamePosInRegex) { - for await (const fullPath of this.findFilesRecursivelyAsync(folder, fileNameRegex)) { - const code = await this.readFile(fullPath); - var match; - while (!!(match = functionAttributeRegex.exec(code))) { - let functionName = (0, traverseFunctionProjectUtils_1.cleanupFunctionName)(match[functionNamePosInRegex]); - const functionAttributeEndPos = match.index + match[0].length; - const body = (0, traverseFunctionProjectUtils_1.getCodeInBrackets)(code, functionAttributeEndPos, '{', '}', '\n'); - if (body.openBracketPos >= 0 && !!body.code) { - yield { - functionName, - filePath: fullPath, - pos: match.index, - lineNr: (0, traverseFunctionProjectUtils_1.posToLineNr)(code, match.index), - declarationCode: body.code.substring(0, body.openBracketPos), - bodyCode: body.code.substring(body.openBracketPos) - }; - } - else { - // Returning the rest of the file - yield { - functionName, - filePath: fullPath, - pos: match.index, - lineNr: (0, traverseFunctionProjectUtils_1.posToLineNr)(code, match.index), - declarationCode: code.substring(functionAttributeEndPos), - bodyCode: code.substring(functionAttributeEndPos) - }; - break; - } - } - } - } -} -exports.FileSystemWrapperBase = FileSystemWrapperBase; - - -/***/ }), -/* 4 */ -/***/ ((__unused_webpack_module, exports) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BindingsParser = exports.TraversalRegexes = exports.getCodeInBracketsReverse = exports.getCodeInBrackets = exports.posToLineNr = exports.mapActivitiesToOrchestrator = exports.getEventNames = exports.removeNamespace = exports.cleanupFunctionName = void 0; -function cleanupFunctionName(name) { - if (!name) { - return name; - } - const nameofMatch = new RegExp(`nameof\\s*\\(\\s*([\\w\\.]+)\\s*\\)`).exec(name); - if (!!nameofMatch) { - return removeNamespace(nameofMatch[1]); - } - name = name.trim(); - if (name.startsWith('"')) { - return name.replace(/^"/, '').replace(/"$/, ''); - } - return removeNamespace(name); -} -exports.cleanupFunctionName = cleanupFunctionName; -function removeNamespace(name) { - if (!name) { - return name; - } - const dotPos = name.lastIndexOf('.'); - if (dotPos >= 0) { - name = name.substring(dotPos + 1); - } - return name.trim(); -} -exports.removeNamespace = removeNamespace; -// Tries to extract event names that this orchestrator is awaiting -function getEventNames(orchestratorCode) { - const result = []; - const regex = TraversalRegexes.waitForExternalEventRegex; - var match; - while (!!(match = regex.exec(orchestratorCode))) { - result.push(match[4]); - } - return result; -} -exports.getEventNames = getEventNames; -// Tries to match orchestrator with its activities -function mapActivitiesToOrchestrator(functions, orch, activityNames) { - for (const activityName of activityNames) { - // If this orchestrator seems to be calling this activity - const regex = TraversalRegexes.getCallActivityRegex(activityName); - if (!!regex.exec(orch.code)) { - // Then mapping this activity to this orchestrator - functions[activityName].isCalledBy = functions[activityName].isCalledBy ?? []; - functions[activityName].isCalledBy.push(orch.name); - } - } -} -exports.mapActivitiesToOrchestrator = mapActivitiesToOrchestrator; -// Primitive way of getting a line number out of symbol position -function posToLineNr(code, pos) { - if (!code) { - return 0; - } - const lineBreaks = code.substr(0, pos).match(/(\r\n|\r|\n)/g); - return !lineBreaks ? 1 : lineBreaks.length + 1; -} -exports.posToLineNr = posToLineNr; -// Complements regex's inability to keep up with nested brackets -function getCodeInBrackets(str, startFrom, openingBracket, closingBracket, mustHaveSymbols = '') { - var bracketCount = 0, openBracketPos = -1, mustHaveSymbolFound = !mustHaveSymbols; - for (var i = startFrom; i < str.length; i++) { - switch (str[i]) { - case openingBracket: - if (bracketCount <= 0) { - openBracketPos = i; - } - bracketCount++; - break; - case closingBracket: - bracketCount--; - if (bracketCount <= 0 && mustHaveSymbolFound) { - return { code: str.substring(startFrom, i + 1), openBracketPos: openBracketPos - startFrom }; - } - break; - } - if (bracketCount > 0 && mustHaveSymbols.includes(str[i])) { - mustHaveSymbolFound = true; - } - } - return { code: '', openBracketPos: -1 }; -} -exports.getCodeInBrackets = getCodeInBrackets; -// Complements regex's inability to keep up with nested brackets -function getCodeInBracketsReverse(str, openingBracket, closingBracket) { - var bracketCount = 0, closingBracketPos = 0; - for (var i = str.length - 1; i >= 0; i--) { - switch (str[i]) { - case closingBracket: - if (bracketCount <= 0) { - closingBracketPos = i; - } - bracketCount++; - break; - case openingBracket: - bracketCount--; - if (bracketCount <= 0) { - return { code: str.substring(0, closingBracketPos + 1), openBracketPos: i }; - } - break; - } - } - return { code: '', openBracketPos: -1 }; -} -exports.getCodeInBracketsReverse = getCodeInBracketsReverse; -// General-purpose regexes -class TraversalRegexes { - static getStartNewOrchestrationRegex(orchName) { - return new RegExp(`(StartNew|StartNewAsync|start_new|scheduleNewOrchestrationInstance)(\\s*<[\\w\\.-\\[\\]\\<\\>,\\s]+>)?\\s*\\(\\s*(["'\`]|nameof\\s*\\(\\s*[\\w\\.-]*|[\\w\\s\\.]+\\.\\s*)${orchName}\\s*["'\\),]{1}`, 'i'); - } - static getCallSubOrchestratorRegex(subOrchName) { - return new RegExp(`(CallSubOrchestrator|CallSubOrchestratorWithRetry|call_sub_orchestrator)(Async)?(\\s*<[\\w\\.-\\[\\]\\<\\>,\\s]+>)?\\s*\\(\\s*(["'\`]|nameof\\s*\\(\\s*[\\w\\.-]*|[\\w\\s\\.]+\\.\\s*)${subOrchName}\\s*["'\\),]{1}`, 'i'); - } - static getRaiseEventRegex(eventName) { - return new RegExp(`(RaiseEvent|raise_event)(Async)?(.|\r|\n)*${eventName}`, 'i'); - } - static getSignalEntityRegex(entityName) { - return new RegExp(`${entityName}\\s*["'>]{1}`); - } - static getDotNetFunctionNameRegex(funcName) { - return new RegExp(`FunctionName(Attribute)?\\s*\\(\\s*(nameof\\s*\\(\\s*|["'\`]|[\\w\\s\\.]+\\.\\s*)${funcName}\\s*["'\`\\)]{1}`); - } - static getJavaFunctionNameRegex(funcName) { - return new RegExp(`@\\s*FunctionName\\s*\\(["\\s\\w\\.-]*${funcName}"?\\)`); - } - static getCallActivityRegex(activityName) { - return new RegExp(`(CallActivity|call_activity)[\\s\\w,\\.-<>\\[\\]\\(\\)\\?]*\\([\\s\\w\\.-]*["'\`]?${activityName}\\s*["'\`\\),]{1}`, 'i'); - } - static getClassDefinitionRegex(className) { - return new RegExp(`class\\s*${className}`); - } -} -exports.TraversalRegexes = TraversalRegexes; -TraversalRegexes.continueAsNewRegex = new RegExp(`ContinueAsNew\\s*\\(`, 'i'); -TraversalRegexes.waitForExternalEventRegex = new RegExp(`(WaitForExternalEvent|wait_for_external_event)(<[\\s\\w,\\.-\\[\\]\\(\\)\\<\\>]+>)?\\s*\\(\\s*(nameof\\s*\\(\\s*|["'\`]|[\\w\\s\\.]+\\.\\s*)?([\\s\\w\\.-]+)\\s*["'\`\\),]{1}`, 'gi'); -// In .Net not all bindings are mentioned in function.json, so we need to analyze source code to extract them -class BindingsParser { - // Extracts additional bindings info from C#/F# source code - static tryExtractBindings(funcCode) { - const result = []; - if (!funcCode) { - return result; - } - const regex = this.bindingAttributeRegex; - var match; - while (!!(match = regex.exec(funcCode))) { - const isReturn = !!match[3]; - let attributeName = match[4]; - if (attributeName.endsWith(`Attribute`)) { - attributeName = attributeName.substring(0, attributeName.length - `Attribute`.length); - } - const attributeCodeStartIndex = match.index + match[0].length; - const attributeCode = getCodeInBrackets(funcCode, attributeCodeStartIndex, '(', ')', '').code; - this.isOutRegex.lastIndex = attributeCodeStartIndex + attributeCode.length; - const isOut = !!this.isOutRegex.exec(funcCode); - switch (attributeName) { - case 'BlobInput': - case 'BlobOutput': - case 'Blob': { - const binding = { - type: 'blob', - direction: attributeName === 'Blob' ? (isReturn || isOut ? 'out' : 'in') : (attributeName === 'BlobOutput' ? 'out' : 'in') - }; - const paramsMatch = this.blobParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.path = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'BlobTrigger': { - const binding = { type: 'blobTrigger' }; - const paramsMatch = this.blobParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.path = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'TableInput': - case 'TableOutput': - case 'Table': { - const binding = { - type: 'table', - direction: attributeName === 'Table' ? (isReturn || isOut ? 'out' : 'in') : (attributeName === 'TableOutput' ? 'out' : 'in') - }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.tableName = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'CosmosDBInput': - case 'CosmosDBOutput': - case 'CosmosDB': { - const binding = { - type: 'cosmosDB', - direction: attributeName === 'CosmosDB' ? (isReturn || isOut ? 'out' : 'in') : (attributeName === 'CosmosDBOutput' ? 'out' : 'in') - }; - const paramsMatch = this.cosmosDbParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.databaseName = paramsMatch[1]; - binding.collectionName = paramsMatch[3]; - } - result.push(binding); - break; - } - case 'CosmosDBTrigger': { - const binding = { type: 'cosmosDBTrigger' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.databaseName = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'EventGrid': - case 'EventGridOutput': { - const binding = { type: 'eventGrid', direction: 'out' }; - const paramsMatch = this.eventGridParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.topicEndpointUri = paramsMatch[1]; - binding.topicKeySetting = paramsMatch[3]; - } - result.push(binding); - break; - } - case 'EventGridTrigger': { - const binding = { type: 'eventGridTrigger' }; - const paramsMatch = this.eventGridParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.topicEndpointUri = paramsMatch[1]; - binding.topicKeySetting = paramsMatch[3]; - } - result.push(binding); - break; - } - case 'EventHub': - case 'EventHubOutput': { - const binding = { type: 'eventHub', direction: 'out' }; - const paramsMatch = this.eventHubParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.eventHubName = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'EventHubTrigger': { - const binding = { type: 'eventHubTrigger' }; - const paramsMatch = this.eventHubParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.eventHubName = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'Kafka': - case 'KafkaOutput': { - const binding = { type: 'kafka', direction: 'out' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.brokerList = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'KafkaTrigger': { - const binding = { type: 'kafkaTrigger' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.brokerList = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'Queue': - case 'QueueOutput': { - const binding = { type: 'queue', direction: 'out' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['queueName'] = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'QueueTrigger': { - const binding = { type: 'queueTrigger' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['queueName'] = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'ServiceBus': - case 'ServiceBusOutput': { - const binding = { type: 'serviceBus', direction: 'out' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['queueName'] = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'ServiceBusTrigger': - case 'ServiceBusQueueTrigger': - case 'ServiceBusTopicTrigger': { - const binding = { type: 'serviceBusTrigger' }; - const paramsMatch = this.singleParamRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['queueName'] = paramsMatch[2]; - } - result.push(binding); - break; - } - case 'SignalRConnectionInfo': - case 'SignalRConnectionInfoInput': { - const binding = { type: 'signalRConnectionInfo', direction: 'in' }; - const paramsMatch = this.signalRConnInfoParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding.hubName = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'SignalR': - case 'SignalROutput': { - const binding = { type: 'signalR', direction: 'out' }; - const paramsMatch = this.signalRParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['hubName'] = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'SignalRTrigger': { - const binding = { type: 'signalRTrigger' }; - const paramsMatch = this.signalRParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['hubName'] = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'RabbitMQ': - case 'RabbitMQOutput': { - const binding = { type: 'rabbitMQ', direction: 'out' }; - const paramsMatch = this.rabbitMqParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['queueName'] = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'RabbitMQTrigger': { - const binding = { type: 'rabbitMQTrigger' }; - const paramsMatch = this.rabbitMqParamsRegex.exec(attributeCode); - if (!!paramsMatch) { - binding['queueName'] = paramsMatch[1]; - } - result.push(binding); - break; - } - case 'SendGrid': - case 'SendGridOutput': { - result.push({ type: 'sendGrid', direction: 'out' }); - break; - } - case 'TwilioSms': { - result.push({ type: 'twilioSms', direction: 'out' }); - break; - } - case 'HttpTrigger': { - const binding = { type: 'httpTrigger', methods: [] }; - const httpTriggerRouteMatch = this.httpTriggerRouteRegex.exec(attributeCode); - if (!!httpTriggerRouteMatch) { - binding.route = httpTriggerRouteMatch[1]; - } - const lowerAttributeCode = attributeCode.toLowerCase(); - for (const httpMethod of this.httpMethods) { - if (lowerAttributeCode.includes(`"${httpMethod}"`)) { - binding.methods.push(httpMethod); - } - } - result.push(binding); - result.push({ type: 'http', direction: 'out' }); - break; - } - case 'OrchestrationTrigger': - case 'DurableOrchestrationTrigger': { - result.push({ type: 'orchestrationTrigger', direction: 'in' }); - break; - } - case 'ActivityTrigger': - case 'DurableActivityTrigger': { - result.push({ type: 'activityTrigger', direction: 'in' }); - break; - } - case 'EntityTrigger': - case 'DurableEntityTrigger': { - result.push({ type: 'entityTrigger', direction: 'in' }); - break; - } - default: { - result.push({ type: attributeName, direction: isReturn || isOut ? 'out' : 'in' }); - break; - } - } - } - return result; - } - static getFunctionAttributeRegex() { - return new RegExp(`\\[\\s*Function(Name)?(Attribute)?\\s*\\((["\\w\\s\\.\\(\\)-]+)\\)\\s*\\]`, 'g'); - } - static getJavaFunctionAttributeRegex() { - return new RegExp(`@\\s*FunctionName\\s*\\((["\\w\\s\\.\\(\\)-]+)\\)`, 'g'); - } - static getFSharpFunctionAttributeRegex() { - return new RegExp(`\\[<\\s*Function(Name)?\\s*\\((["\\w\\s\\.\\(\\)-]+)\\)`, 'g'); - } -} -exports.BindingsParser = BindingsParser; -BindingsParser.bindingAttributeRegex = new RegExp(`(\\[|@)(<)?\\s*(return:)?\\s*(\\w+)`, 'g'); -BindingsParser.singleParamRegex = new RegExp(`("|nameof\\s*\\()?([\\w\\.-]+)`); -BindingsParser.eventHubParamsRegex = new RegExp(`"([^"]+)"`); -BindingsParser.signalRParamsRegex = new RegExp(`"([^"]+)"`); -BindingsParser.rabbitMqParamsRegex = new RegExp(`"([^"]+)"`); -BindingsParser.blobParamsRegex = new RegExp(`"([^"]+)"`); -BindingsParser.cosmosDbParamsRegex = new RegExp(`"([^"]+)"(.|\r|\n)+?"([^"]+)"`); -BindingsParser.signalRConnInfoParamsRegex = new RegExp(`"([^"]+)"`); -BindingsParser.eventGridParamsRegex = new RegExp(`"([^"]+)"(.|\r|\n)+?"([^"]+)"`); -BindingsParser.isOutRegex = new RegExp(`^\\s*\\]\\s*(out |ICollector|IAsyncCollector).*?(,|\\()`, 'g'); -BindingsParser.httpMethods = [`get`, `head`, `post`, `put`, `delete`, `connect`, `options`, `trace`, `patch`]; -BindingsParser.httpTriggerRouteRegex = new RegExp(`Route\\s*=\\s*"(.*)"`); -BindingsParser.functionReturnTypeRegex = new RegExp(`public\\s*(static\\s*|async\\s*)*(Task\\s*<\\s*)?([\\w\\.]+)`); - - -/***/ }), -/* 5 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FunctionGraphView = void 0; -const vscode = __webpack_require__(1); -const functionProjectParser_1 = __webpack_require__(6); -const FileSystemWrapper_1 = __webpack_require__(2); -// Represents the function graph view -class FunctionGraphView { - constructor(_context, _functionProjectUri) { - this._context = _context; - this._functionProjectUri = _functionProjectUri; - // Reference to the already opened WebView with the main page - this._webViewPanel = null; - this._staticsFolder = vscode.Uri.joinPath(this._context.extensionUri, 'HtmlStatics'); - this._webViewPanel = this.showWebView(); - } - // Closes this web view - cleanup() { - if (!!this._webViewPanel) { - this._webViewPanel.dispose(); - } - } - // Opens a WebView with function graph page in it - showWebView() { - const title = `Functions Graph (${this._functionProjectUri.fsPath})`; - const panel = vscode.window.createWebviewPanel(FunctionGraphView.viewType, title, vscode.ViewColumn.One, { - retainContextWhenHidden: true, - enableScripts: true, - localResourceRoots: [this._staticsFolder] - }); - const fileUri = vscode.Uri.joinPath(this._staticsFolder, 'index.html'); - vscode.workspace.fs.readFile(fileUri).then(htmlBytes => { - let html = new TextDecoder().decode(htmlBytes); - html = this.fixLinksToStatics(html, this._staticsFolder, panel.webview); - html = this.embedTheme(html); - panel.webview.html = html; - }, err => { - vscode.window.showErrorMessage(`az-func-as-a-graph failed. ${err.message ?? err}`); - }); - // handle events from WebView - panel.webview.onDidReceiveMessage(request => this.handleMessageFromWebView(panel.webview, request), undefined, this._context.subscriptions); - return panel; - } - // Embeds the current color theme - embedTheme(html) { - if ([2, 3].includes(vscode.window.activeColorTheme.kind)) { - return html.replace('', ''); - } - return html; - } - // Does communication between code in WebView and this class - handleMessageFromWebView(webView, request) { - switch (request.kind) { - case 'ShowMessage': - vscode.window.showInformationMessage(request.data); - return; - case 'ShowError': - vscode.window.showErrorMessage(`az-func-as-a-graph failed. ${request.data}`); - return; - case 'SaveAs': - // Just to be extra sure... - if (!this.looksLikeSvg(request.data)) { - vscode.window.showErrorMessage(`Invalid data format. Save failed.`); - return; - } - // Saving some file to local hard drive - vscode.window.showSaveDialog({ defaultUri: vscode.Uri.file('func-map.svg'), filters: { 'SVG Images': ['svg'] } }).then(filePath => { - if (!filePath) { - return; - } - const bytes = new TextEncoder().encode(request.data); - vscode.workspace.fs.writeFile(filePath, bytes).then(() => { - vscode.window.showInformationMessage(`SVG image saved to ${filePath}`); - }, err => { - vscode.window.showErrorMessage(`Failed to save. ${err.message ?? err}`); - }); - }); - return; - case 'SaveFunctionGraphAsJson': - if (!this._traversalResult) { - return; - } - // Saving some file to local hard drive - vscode.window.showSaveDialog({ defaultUri: vscode.Uri.file('func-map.json'), filters: { 'JSON': ['json'] } }).then(filePath => { - if (!filePath) { - return; - } - const bytes = new TextEncoder().encode(JSON.stringify(this._traversalResult, null, 3)); - vscode.workspace.fs.writeFile(filePath, bytes).then(() => { - vscode.window.showInformationMessage(`Diagram JSON saved to ${filePath}`); - }, err => { - vscode.window.showErrorMessage(`Failed to save. ${err.message ?? err}`); - }); - }); - return; - case 'GotoFunctionCode': - if (!this._traversalResult) { - return; - } - const functionName = request.data; - var functionOrProxy = null; - if (functionName.startsWith('proxy.')) { - functionOrProxy = this._traversalResult.proxies[functionName.substr(6)]; - } - else { - functionOrProxy = this._traversalResult.functions[functionName]; - } - vscode.window.showTextDocument(vscode.Uri.parse(functionOrProxy.filePath)).then(ed => { - const pos = ed.document.positionAt(!!functionOrProxy.pos ? functionOrProxy.pos : 0); - ed.selection = new vscode.Selection(pos, pos); - ed.revealRange(new vscode.Range(pos, pos)); - }); - return; - case 'Refresh': - functionProjectParser_1.FunctionProjectParser.parseFunctions(this._functionProjectUri.toString(), new FileSystemWrapper_1.FileSystemWrapper(), console.log).then(res => { - console.log(`>>>>>> ${this._functionProjectUri}: ${Object.keys(res.functions).length} functions`); - this._traversalResult = res; - webView.postMessage(this._traversalResult); - }).catch(err => { - this._traversalResult = undefined; - webView.postMessage(undefined); - vscode.window.showErrorMessage(`az-func-as-a-graph failed. ${err.message ?? err}`); - }); - return; - } - } - fixLinksToStatics(originalHtml, staticsFolder, webView) { - var resultHtml = originalHtml; - const regex = / (href|src)="\/([0-9a-z.\/]+)"/ig; - var match; - while (match = regex.exec(originalHtml)) { - const relativePath = match[2]; - const localPath = vscode.Uri.joinPath(staticsFolder, relativePath); - const newPath = webView.asWebviewUri(localPath).toString(); - resultHtml = resultHtml.replace(`/${relativePath}`, newPath); - } - return resultHtml; - } - // Validates incoming SVG, just to be extra sure... - looksLikeSvg(data) { - return data.startsWith('') && !data.toLowerCase().includes(' { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FunctionProjectParser = void 0; -const traverseFunctionProjectUtils_1 = __webpack_require__(4); -class FunctionProjectParser { - // Collects all function.json files in a Functions project. Also tries to supplement them with bindings - // extracted from code (if the project is .Net or Java). Also parses and organizes orchestrators/activities - // (if the project uses Durable Functions) - static async parseFunctions(projectFolder, fileSystemWrapper, log) { - const hostJsonMatch = await fileSystemWrapper.findFileRecursivelyAsync(projectFolder, 'host.json', false); - if (!hostJsonMatch) { - throw new Error('host.json file not found under the provided project path'); - } - log(`>>> Found host.json at ${hostJsonMatch.filePath}`); - const hostJsonFolder = fileSystemWrapper.dirName(hostJsonMatch.filePath); - let parser; - if (await fileSystemWrapper.isCSharpProjectAsync(hostJsonFolder)) { - parser = new CSharpFunctionProjectParser(fileSystemWrapper, log); - } - else if (await fileSystemWrapper.isFSharpProjectAsync(hostJsonFolder)) { - parser = new FSharpFunctionProjectParser(fileSystemWrapper, log); - } - else if (await fileSystemWrapper.isJavaProjectAsync(hostJsonFolder)) { - parser = new JavaFunctionProjectParser(fileSystemWrapper, log); - } - else { - parser = new FunctionProjectScriptParser(fileSystemWrapper, log); - // For script-based functions use host.json's folder as the root - projectFolder = hostJsonFolder; - } - const functions = await parser.traverseFunctions(projectFolder); - // Also reading proxies - const proxies = await fileSystemWrapper.readProxiesJson(projectFolder, log); - return { functions, proxies, projectFolder }; - } - constructor(_fileSystemWrapper, _log) { - this._fileSystemWrapper = _fileSystemWrapper; - this._log = _log; - } - // Tries to match orchestrations and their activities by parsing source code - async mapOrchestratorsAndActivitiesAsync(functions, projectFolder) { - const functionNames = Object.keys(functions); - const orchestratorNames = functionNames.filter(name => functions[name].bindings.some((b) => b.type === 'orchestrationTrigger')); - const orchestrators = await this.getFunctionsAndTheirCodesAsync(orchestratorNames, projectFolder); - const activityNames = Object.keys(functions).filter(name => functions[name].bindings.some((b) => b.type === 'activityTrigger')); - const activities = await this.getFunctionsAndTheirCodesAsync(activityNames, projectFolder); - const entityNames = functionNames.filter(name => functions[name].bindings.some((b) => b.type === 'entityTrigger')); - const entities = await this.getFunctionsAndTheirCodesAsync(entityNames, projectFolder); - const otherFunctionNames = functionNames.filter(name => !functions[name].bindings.some((b) => ['orchestrationTrigger', 'activityTrigger', 'entityTrigger'].includes(b.type))); - const otherFunctions = await this.getFunctionsAndTheirCodesAsync(otherFunctionNames, projectFolder); - for (const orch of orchestrators) { - // Trying to match this orchestrator with its calling function - const regex = traverseFunctionProjectUtils_1.TraversalRegexes.getStartNewOrchestrationRegex(orch.name); - for (const func of otherFunctions) { - // If this function seems to be calling that orchestrator - if (!!regex.exec(func.code)) { - functions[orch.name].isCalledBy = functions[orch.name].isCalledBy ?? []; - functions[orch.name].isCalledBy.push(func.name); - } - } - // Matching suborchestrators - for (const subOrch of orchestrators) { - if (orch.name === subOrch.name) { - continue; - } - // If this orchestrator seems to be calling that suborchestrator - const regex = traverseFunctionProjectUtils_1.TraversalRegexes.getCallSubOrchestratorRegex(subOrch.name); - if (!!regex.exec(orch.code)) { - // Mapping that suborchestrator to this orchestrator - functions[subOrch.name].isCalledBy = functions[subOrch.name].isCalledBy ?? []; - functions[subOrch.name].isCalledBy.push(orch.name); - } - } - // Mapping activities to orchestrators - (0, traverseFunctionProjectUtils_1.mapActivitiesToOrchestrator)(functions, orch, activityNames); - // Checking whether orchestrator calls itself - if (!!traverseFunctionProjectUtils_1.TraversalRegexes.continueAsNewRegex.exec(orch.code)) { - functions[orch.name].isCalledByItself = true; - } - // Trying to map event producers with their consumers - const eventNames = (0, traverseFunctionProjectUtils_1.getEventNames)(orch.code); - for (const eventName of eventNames) { - const regex = traverseFunctionProjectUtils_1.TraversalRegexes.getRaiseEventRegex(eventName); - for (const func of otherFunctions) { - // If this function seems to be sending that event - if (!!regex.exec(func.code)) { - functions[orch.name].isSignalledBy = functions[orch.name].isSignalledBy ?? []; - functions[orch.name].isSignalledBy.push({ name: func.name, signalName: eventName }); - } - } - } - } - for (const entity of entities) { - // Trying to match this entity with its calling function - for (const func of otherFunctions) { - // If this function seems to be calling that entity - const regex = traverseFunctionProjectUtils_1.TraversalRegexes.getSignalEntityRegex(entity.name); - if (!!regex.exec(func.code)) { - functions[entity.name].isCalledBy = functions[entity.name].isCalledBy ?? []; - functions[entity.name].isCalledBy.push(func.name); - } - } - } - // Also adding file paths and code positions - for (const func of otherFunctions.concat(orchestrators).concat(activities).concat(entities)) { - functions[func.name].filePath = func.filePath; - functions[func.name].pos = func.pos; - functions[func.name].lineNr = func.lineNr; - } - return functions; - } -} -exports.FunctionProjectParser = FunctionProjectParser; -class FunctionProjectScriptParser extends FunctionProjectParser { - async traverseFunctions(projectFolder) { - let functions; - functions = await this._fileSystemWrapper.readFunctionsJson(projectFolder, this._log); - // Now enriching it with more info extracted from code - functions = await this.mapOrchestratorsAndActivitiesAsync(functions, projectFolder); - return functions; - } - async getFunctionsAndTheirCodesAsync(functionNames, hostJsonFolder) { - const promises = functionNames.map(async (name) => { - let match = await this._fileSystemWrapper.findFileRecursivelyAsync(this._fileSystemWrapper.joinPath(hostJsonFolder, name), '(index\\.ts|index\\.js|__init__\\.py)$', true); - if (!match) { - return undefined; - } - const pos = !match.pos ? 0 : match.pos; - const lineNr = (0, traverseFunctionProjectUtils_1.posToLineNr)(match.code, pos); - return { name, code: match.code, filePath: match.filePath, pos, lineNr }; - }); - return (await Promise.all(promises)).filter(f => !!f); - } -} -class FunctionProjectCodeParser extends FunctionProjectParser { - async traverseFunctions(projectFolder) { - let functions; - functions = await this.traverseProjectCode(projectFolder); - // Now enriching it with more info extracted from code - functions = await this.mapOrchestratorsAndActivitiesAsync(functions, projectFolder); - return functions; - } -} -class CSharpFunctionProjectParser extends FunctionProjectCodeParser { - async getFunctionsAndTheirCodesAsync(functionNames, hostJsonFolder) { - const promises = functionNames.map(async (name) => { - const match = await this._fileSystemWrapper.findFileRecursivelyAsync(hostJsonFolder, '.+\\.cs$', true, traverseFunctionProjectUtils_1.TraversalRegexes.getDotNetFunctionNameRegex(name)); - if (!match) { - return undefined; - } - const pos = !match.pos ? 0 : match.pos; - const lineNr = (0, traverseFunctionProjectUtils_1.posToLineNr)(match.code, pos); - const code = (0, traverseFunctionProjectUtils_1.getCodeInBrackets)(match.code, match.pos + match.length, '{', '}', '\n').code; - return { name, code, filePath: match.filePath, pos, lineNr }; - }); - return (await Promise.all(promises)).filter(f => !!f); - } - async traverseProjectCode(projectFolder) { - const result = {}; - const fileNameRegex = new RegExp('.+\\.cs$', 'i'); - for await (const func of this._fileSystemWrapper.findFunctionsRecursivelyAsync(projectFolder, fileNameRegex, traverseFunctionProjectUtils_1.BindingsParser.getFunctionAttributeRegex(), 3)) { - const bindings = traverseFunctionProjectUtils_1.BindingsParser.tryExtractBindings(func.declarationCode); - if (!(bindings.some(b => b.type === 'orchestrationTrigger') || - bindings.some(b => b.type === 'entityTrigger') || - bindings.some(b => b.type === 'activityTrigger'))) { - // Also trying to extract multiple output bindings - bindings.push(...await this.extractOutputBindings(projectFolder, func.declarationCode, fileNameRegex)); - } - result[func.functionName] = { - filePath: func.filePath, - pos: func.pos, - lineNr: func.lineNr, - bindings: [...bindings] - }; - } - return result; - } - async extractOutputBindings(projectFolder, functionCode, fileNameRegex) { - const returnTypeMatch = traverseFunctionProjectUtils_1.BindingsParser.functionReturnTypeRegex.exec(functionCode); - if (!returnTypeMatch) { - return []; - } - const returnTypeName = (0, traverseFunctionProjectUtils_1.removeNamespace)(returnTypeMatch[3]); - if (!returnTypeName) { - return []; - } - const returnTypeDefinition = await this._fileSystemWrapper.findFileRecursivelyAsync(projectFolder, fileNameRegex, true, traverseFunctionProjectUtils_1.TraversalRegexes.getClassDefinitionRegex(returnTypeName)); - if (!returnTypeDefinition) { - return []; - } - const classBody = (0, traverseFunctionProjectUtils_1.getCodeInBrackets)(returnTypeDefinition.code, (returnTypeDefinition.pos ?? 0) + (returnTypeDefinition.length ?? 0), '{', '}'); - if (!classBody.code) { - return []; - } - return traverseFunctionProjectUtils_1.BindingsParser.tryExtractBindings(classBody.code); - } -} -class FSharpFunctionProjectParser extends FunctionProjectCodeParser { - async getFunctionsAndTheirCodesAsync(functionNames, hostJsonFolder) { - const promises = functionNames.map(async (name) => { - const match = await this._fileSystemWrapper.findFileRecursivelyAsync(hostJsonFolder, '.+\\.fs$', true, traverseFunctionProjectUtils_1.TraversalRegexes.getDotNetFunctionNameRegex(name)); - if (!match) { - return undefined; - } - const code = (0, traverseFunctionProjectUtils_1.getCodeInBrackets)(match.code, match.pos + match.length, '{', '}', '\n').code; - const pos = !match.pos ? 0 : match.pos; - const lineNr = (0, traverseFunctionProjectUtils_1.posToLineNr)(match.code, pos); - return { name, code, filePath: match.filePath, pos, lineNr }; - }); - return (await Promise.all(promises)).filter(f => !!f); - } - async traverseProjectCode(projectFolder) { - const result = {}; - for await (const func of this._fileSystemWrapper.findFunctionsRecursivelyAsync(projectFolder, new RegExp('.+\\.fs$', 'i'), traverseFunctionProjectUtils_1.BindingsParser.getFSharpFunctionAttributeRegex(), 2)) { - const bindings = traverseFunctionProjectUtils_1.BindingsParser.tryExtractBindings(func.declarationCode); - result[func.functionName] = { - filePath: func.filePath, - pos: func.pos, - lineNr: func.lineNr, - bindings: [...bindings] - }; - } - return result; - } -} -class JavaFunctionProjectParser extends FunctionProjectCodeParser { - async getFunctionsAndTheirCodesAsync(functionNames, hostJsonFolder) { - const promises = functionNames.map(async (name) => { - const match = await this._fileSystemWrapper.findFileRecursivelyAsync(hostJsonFolder, '.+\\.java$', true, traverseFunctionProjectUtils_1.TraversalRegexes.getDotNetFunctionNameRegex(name)); - if (!match) { - return undefined; - } - const code = (0, traverseFunctionProjectUtils_1.getCodeInBrackets)(match.code, match.pos + match.length, '{', '}', '\n').code; - const pos = !match.pos ? 0 : match.pos; - const lineNr = (0, traverseFunctionProjectUtils_1.posToLineNr)(match.code, pos); - return { name, code, filePath: match.filePath, pos, lineNr }; - }); - return (await Promise.all(promises)).filter(f => !!f); - } - async traverseProjectCode(projectFolder) { - const result = {}; - for await (const func of this._fileSystemWrapper.findFunctionsRecursivelyAsync(projectFolder, new RegExp('.+\\.java$', 'i'), traverseFunctionProjectUtils_1.BindingsParser.getJavaFunctionAttributeRegex(), 1)) { - const bindings = traverseFunctionProjectUtils_1.BindingsParser.tryExtractBindings(func.declarationCode); - result[func.functionName] = { - filePath: func.filePath, - pos: func.pos, - lineNr: func.lineNr, - bindings: [...bindings] - }; - } - return result; - } -} - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -var exports = __webpack_exports__; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.deactivate = exports.activate = void 0; -const vscode = __webpack_require__(1); -const FileSystemWrapper_1 = __webpack_require__(2); -const FunctionGraphView_1 = __webpack_require__(5); -let graphViews = []; -const fsWrapper = new FileSystemWrapper_1.FileSystemWrapper(); -const MaxProjectsToShowAutomatically = 5; -async function showAllFunctionProjects(context) { - if (!vscode.workspace.workspaceFolders) { - return; - } - const hostJsonFolders = []; - for (const folder of vscode.workspace.workspaceFolders) { - for await (const hostJsonPath of fsWrapper.findFilesRecursivelyAsync(folder.uri.toString(), new RegExp('host.json', 'i'))) { - hostJsonFolders.push(fsWrapper.dirName(hostJsonPath)); - } - } - if (hostJsonFolders.length > MaxProjectsToShowAutomatically) { - const userResponse = await vscode.window.showWarningMessage(`az-func-as-a-graph found ${hostJsonFolders.length} Azure Functions projects in current workspace. Do you want to visualize all of them?`, 'Yes', 'No'); - if (userResponse !== 'Yes') { - return; - } - } - for (const hostJsonFolder of hostJsonFolders) { - graphViews.push(new FunctionGraphView_1.FunctionGraphView(context, vscode.Uri.parse(hostJsonFolder))); - } -} -async function activate(context) { - context.subscriptions.push(vscode.commands.registerCommand('az-func-as-a-graph.ShowGraph', async (item) => { - if (!!item) { - const pathToHostJson = item.toString(); - if (pathToHostJson.toLowerCase().endsWith('host.json')) { - graphViews.push(new FunctionGraphView_1.FunctionGraphView(context, vscode.Uri.parse(fsWrapper.dirName(pathToHostJson)))); - } - return; - } - await showAllFunctionProjects(context); - })); - if (!vscode.workspace.workspaceFolders) { - return; - } - const config = vscode.workspace.getConfiguration('az-func-as-a-graph'); - if (!!config.get('showGraphAtStartup', true)) { - // Showing graphs of all Functions in the workspace - await showAllFunctionProjects(context); - } -} -exports.activate = activate; -// This method is called when your extension is deactivated -function deactivate() { - for (const view of graphViews) { - view.cleanup(); - } -} -exports.deactivate = deactivate; - -})(); - -var __webpack_export_target__ = exports; -for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; -if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); -/******/ })() -; -//# sourceMappingURL=extension.js.map \ No newline at end of file +(()=>{"use strict";var e={1413:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FileSystemWrapper=void 0;const i=s(9496),n=s(9519);class r extends n.FileSystemWrapperBase{joinPath(e,t){return i.Uri.joinPath(i.Uri.parse(e),t).toString()}dirName(e){const t=e.lastIndexOf("/");if(t<0)throw new Error(`Failed to extract parent folder name from path ${e}. The path does not contain a separator.`);return e.substring(0,t)}async readFile(e){const t=i.Uri.parse(e),s=await i.workspace.fs.readFile(t);return(new TextDecoder).decode(s)}async isDirectory(e){const t=i.Uri.parse(e);return(await i.workspace.fs.stat(t)).type===i.FileType.Directory}async readDir(e){const t=i.Uri.parse(e);return(await i.workspace.fs.readDirectory(t)).map((e=>e[0]))}async pathExists(e){const t=i.Uri.parse(e);try{const e=await i.workspace.fs.stat(t);return e.type===i.FileType.File||e.type===i.FileType.Directory}catch(e){return!1}}}t.FileSystemWrapper=r},2083:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionGraphView=void 0;const i=s(9496),n=s(5970),r=s(1413);class a{constructor(e,t){this._context=e,this._functionProjectUri=t,this._webViewPanel=null,this._staticsFolder=i.Uri.joinPath(this._context.extensionUri,"HtmlStatics"),this._webViewPanel=this.showWebView()}cleanup(){this._webViewPanel&&this._webViewPanel.dispose()}showWebView(){const e=`Functions Graph (${this._functionProjectUri.fsPath})`,t=i.window.createWebviewPanel(a.viewType,e,i.ViewColumn.One,{retainContextWhenHidden:!0,enableScripts:!0,localResourceRoots:[this._staticsFolder]}),s=i.Uri.joinPath(this._staticsFolder,"index.html");return i.workspace.fs.readFile(s).then((e=>{let s=(new TextDecoder).decode(e);s=this.fixLinksToStatics(s,this._staticsFolder,t.webview),s=this.embedTheme(s),t.webview.html=s}),(e=>{i.window.showErrorMessage(`az-func-as-a-graph failed. ${e.message??e}`)})),t.webview.onDidReceiveMessage((e=>this.handleMessageFromWebView(t.webview,e)),void 0,this._context.subscriptions),t}embedTheme(e){return[2,3].includes(i.window.activeColorTheme.kind)?e.replace("', '');\r\n }\r\n return html;\r\n }\r\n\r\n // Does communication between code in WebView and this class\r\n private handleMessageFromWebView(webView: vscode.Webview, request: any): void {\r\n\r\n switch (request.kind) {\r\n\r\n case 'ShowMessage':\r\n\r\n vscode.window.showInformationMessage(request.data);\r\n \r\n return;\r\n\r\n case 'ShowError':\r\n\r\n vscode.window.showErrorMessage(`az-func-as-a-graph failed. ${request.data}`);\r\n \r\n return;\r\n \r\n case 'SaveAs':\r\n\r\n // Just to be extra sure...\r\n if (!this.looksLikeSvg(request.data)) {\r\n vscode.window.showErrorMessage(`Invalid data format. Save failed.`);\r\n return;\r\n }\r\n \r\n // Saving some file to local hard drive\r\n vscode.window.showSaveDialog({ defaultUri: vscode.Uri.file('func-map.svg'), filters: { 'SVG Images': ['svg'] } }).then(filePath => {\r\n\r\n if (!filePath) { \r\n return;\r\n }\r\n\r\n const bytes = new TextEncoder().encode(request.data);\r\n\r\n vscode.workspace.fs.writeFile(filePath, bytes).then(() => {\r\n\r\n vscode.window.showInformationMessage(`SVG image saved to ${filePath}`);\r\n\r\n }, err => {\r\n\r\n vscode.window.showErrorMessage(`Failed to save. ${err.message ?? err}`);\r\n });\r\n\r\n });\r\n return;\r\n \r\n case 'SaveFunctionGraphAsJson':\r\n\r\n if (!this._traversalResult) {\r\n return;\r\n }\r\n \r\n // Saving some file to local hard drive\r\n vscode.window.showSaveDialog({ defaultUri: vscode.Uri.file('func-map.json'), filters: { 'JSON': ['json'] } }).then(filePath => {\r\n\r\n if (!filePath) { \r\n return;\r\n }\r\n\r\n const bytes = new TextEncoder().encode(JSON.stringify(this._traversalResult, null, 3));\r\n\r\n vscode.workspace.fs.writeFile(filePath, bytes).then(() => {\r\n\r\n vscode.window.showInformationMessage(`Diagram JSON saved to ${filePath}`);\r\n\r\n }, err => {\r\n\r\n vscode.window.showErrorMessage(`Failed to save. ${err.message ?? err}`);\r\n });\r\n\r\n });\r\n return;\r\n \r\n case 'GotoFunctionCode':\r\n\r\n if (!this._traversalResult) {\r\n return;\r\n }\r\n\r\n const functionName = request.data;\r\n var functionOrProxy: any = null;\r\n\r\n if (functionName.startsWith('proxy.')) {\r\n \r\n functionOrProxy = this._traversalResult.proxies[functionName.substr(6)];\r\n \r\n } else {\r\n \r\n functionOrProxy = this._traversalResult.functions[functionName];\r\n }\r\n \r\n vscode.window.showTextDocument(vscode.Uri.parse(functionOrProxy.filePath)).then(ed => {\r\n\r\n const pos = ed.document.positionAt(!!functionOrProxy.pos ? functionOrProxy.pos : 0);\r\n\r\n ed.selection = new vscode.Selection(pos, pos);\r\n ed.revealRange(new vscode.Range(pos, pos));\r\n\r\n });\r\n\r\n return;\r\n \r\n case 'Refresh':\r\n\r\n FunctionProjectParser.parseFunctions(this._functionProjectUri.toString(), new FileSystemWrapper(), console.log).then(res => {\r\n\r\n console.log(`>>>>>> ${this._functionProjectUri}: ${Object.keys(res.functions).length} functions`);\r\n\r\n this._traversalResult = res;\r\n webView.postMessage(this._traversalResult);\r\n \r\n }).catch(err => {\r\n\r\n this._traversalResult = undefined;\r\n webView.postMessage(undefined);\r\n \r\n vscode.window.showErrorMessage(`az-func-as-a-graph failed. ${err.message ?? err}`);\r\n });\r\n \r\n return;\r\n }\r\n }\r\n\r\n private fixLinksToStatics(originalHtml: string, staticsFolder: vscode.Uri, webView: vscode.Webview): string {\r\n\r\n var resultHtml: string = originalHtml;\r\n \r\n const regex = / (href|src)=\"\\/([0-9a-z.\\/]+)\"/ig;\r\n var match: RegExpExecArray | null;\r\n while (match = regex.exec(originalHtml)) {\r\n \r\n const relativePath = match[2];\r\n const localPath = vscode.Uri.joinPath(staticsFolder, relativePath)\r\n const newPath = webView.asWebviewUri(localPath).toString();\r\n \r\n resultHtml = resultHtml.replace(`/${relativePath}`, newPath);\r\n }\r\n \r\n return resultHtml;\r\n }\r\n\r\n // Validates incoming SVG, just to be extra sure...\r\n private looksLikeSvg(data: string): boolean {\r\n return data.startsWith('') && !data.toLowerCase().includes(';\r\n\r\n protected abstract isDirectory(path: string): Promise;\r\n\r\n protected abstract readDir(path: string): Promise;\r\n\r\n protected abstract pathExists(path: string): Promise;\r\n\r\n async readFunctionsJson(hostJsonFolder: string, log: (s: any) => void): Promise {\r\n\r\n let functions: FunctionsMap = {};\r\n \r\n // Reading function.json files, in parallel\r\n const promises = (await this.readDir(hostJsonFolder)).map(async functionName => {\r\n \r\n const fullPath = this.joinPath(hostJsonFolder, functionName);\r\n const functionJsonFilePath = this.joinPath(fullPath, 'function.json');\r\n \r\n const isDirectory = await this.isDirectory(fullPath);\r\n const functionJsonExists = await this.pathExists(functionJsonFilePath);\r\n \r\n if (isDirectory && functionJsonExists) {\r\n \r\n try {\r\n const functionJsonString = await this.readFile(functionJsonFilePath);\r\n const functionJson = JSON.parse(functionJsonString);\r\n \r\n functions[functionName] = { bindings: functionJson.bindings, isCalledBy: [], isSignalledBy: [] };\r\n \r\n } catch (err) {\r\n log(`>>> Failed to parse ${functionJsonFilePath}: ${err}`);\r\n }\r\n }\r\n });\r\n await Promise.all(promises);\r\n \r\n return functions;\r\n }\r\n\r\n async readProxiesJson(projectFolder: string, log: (s: any) => void): Promise {\r\n\r\n const proxiesJsonPath = this.joinPath(projectFolder, 'proxies.json');\r\n if (!(await this.pathExists(proxiesJsonPath))) {\r\n return {};\r\n }\r\n \r\n const proxiesJsonString = await this.readFile(proxiesJsonPath);\r\n try {\r\n \r\n const proxies = JSON.parse(proxiesJsonString).proxies as ProxiesMap;\r\n if (!proxies) {\r\n return {};\r\n }\r\n \r\n var notAddedToCsProjFile = false;\r\n if (await this.isCSharpProjectAsync(projectFolder)) {\r\n \r\n // Also checking that proxies.json is added to .csproj file\r\n \r\n const csProjFile = await this.findFileRecursivelyAsync(projectFolder, '.+\\\\.csproj$', true);\r\n const proxiesJsonEntryRegex = new RegExp(`\\\\s*=\\\\s*\"proxies.json\"\\\\s*>`);\r\n \r\n if (!!csProjFile && csProjFile.code && (!proxiesJsonEntryRegex.exec(csProjFile.code))) {\r\n \r\n notAddedToCsProjFile = true;\r\n } \r\n }\r\n \r\n // Also adding filePath and lineNr\r\n for (var proxyName in proxies) {\r\n \r\n const proxy = proxies[proxyName];\r\n proxy.filePath = proxiesJsonPath;\r\n if (notAddedToCsProjFile) {\r\n proxy.warningNotAddedToCsProjFile = true;\r\n }\r\n \r\n const proxyNameRegex = new RegExp(`\"${proxyName}\"\\\\s*:`);\r\n const match = proxyNameRegex.exec(proxiesJsonString);\r\n if (!!match) {\r\n \r\n proxy.pos = match.index;\r\n proxy.lineNr = posToLineNr(proxiesJsonString, proxy.pos);\r\n }\r\n }\r\n \r\n return proxies;\r\n \r\n } catch(err) {\r\n \r\n log(`>>> Failed to parse ${proxiesJsonPath}: ${err}`);\r\n return {};\r\n }\r\n }\r\n\r\n async isCSharpProjectAsync(projectFolder: string): Promise {\r\n return (await this.readDir(projectFolder)).some(fn => {\r\n fn = fn.toLowerCase();\r\n return (fn.endsWith('.csproj') && fn !== 'extensions.csproj');\r\n });\r\n }\r\n\r\n async isFSharpProjectAsync(projectFolder: string): Promise {\r\n return (await this.readDir(projectFolder)).some(fn => {\r\n fn = fn.toLowerCase();\r\n return fn.endsWith('.fsproj');\r\n });\r\n }\r\n\r\n async isJavaProjectAsync(projectFolder: string): Promise {\r\n\r\n const javaFileMatch = await this.findFileRecursivelyAsync(projectFolder, `.+\\\\.java$`, false);\r\n return !!javaFileMatch;\r\n }\r\n\r\n async findFileRecursivelyAsync(folder: string, fileName: string | RegExp, returnFileContents: boolean, pattern?: RegExp)\r\n : Promise<{ filePath: string, code?: string, pos?: number, length?: number } | undefined> {\r\n\r\n const fileNameRegex = typeof fileName === 'string' ? new RegExp(fileName, 'i') : fileName;\r\n\r\n const subFolders: string[] = [];\r\n\r\n for (const name of await this.readDir(folder)) {\r\n\r\n const fullPath = this.joinPath(folder, name);\r\n const isDirectory = await this.isDirectory(fullPath);\r\n\r\n if (!!isDirectory) {\r\n\r\n if (!ExcludedFolders.includes(name.toLowerCase())) {\r\n\r\n subFolders.push(fullPath);\r\n }\r\n\r\n } else if (!!fileNameRegex.exec(name)) {\r\n\r\n if (!pattern) {\r\n return {\r\n filePath: fullPath,\r\n code: returnFileContents ? (await this.readFile(fullPath)) : undefined\r\n };\r\n }\r\n\r\n const code = await this.readFile(fullPath);\r\n const match = pattern.exec(code);\r\n\r\n if (!!match) {\r\n return {\r\n filePath: fullPath,\r\n code: returnFileContents ? code : undefined,\r\n pos: match.index,\r\n length: match[0].length\r\n };\r\n }\r\n }\r\n }\r\n\r\n // Now recursively trying subfolders. Doing this _after_ checking the current folder.\r\n for (const subFolder of subFolders) {\r\n \r\n const result = await this.findFileRecursivelyAsync(subFolder, fileNameRegex, returnFileContents, pattern);\r\n if (!!result) {\r\n return result;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n async * findFilesRecursivelyAsync(folder: string, fileNameRegex: RegExp): AsyncGenerator {\r\n\r\n for (const name of await this.readDir(folder)) {\r\n \r\n var fullPath = this.joinPath(folder, name);\r\n const isDirectory = await this.isDirectory(fullPath);\r\n \r\n if (!!isDirectory) {\r\n \r\n if (ExcludedFolders.includes(name.toLowerCase())) {\r\n continue;\r\n }\r\n \r\n for await (const path of this.findFilesRecursivelyAsync(fullPath, fileNameRegex)) {\r\n \r\n yield path;\r\n }\r\n \r\n } else if (!!fileNameRegex.exec(name)) {\r\n \r\n yield fullPath;\r\n }\r\n }\r\n }\r\n\r\n async * findFunctionsRecursivelyAsync(folder: string, fileNameRegex: RegExp, functionAttributeRegex: RegExp, functionNamePosInRegex: number): AsyncGenerator {\r\n\r\n for await (const fullPath of this.findFilesRecursivelyAsync(folder, fileNameRegex)) {\r\n\r\n const code = await this.readFile(fullPath);\r\n\r\n var match: RegExpExecArray | null;\r\n while (!!(match = functionAttributeRegex.exec(code))) {\r\n\r\n let functionName = cleanupFunctionName(match[functionNamePosInRegex]);\r\n\r\n const functionAttributeEndPos = match.index + match[0].length;\r\n\r\n const body = getCodeInBrackets(code, functionAttributeEndPos, '{', '}', '\\n');\r\n\r\n if (body.openBracketPos >= 0 && !!body.code) {\r\n\r\n yield {\r\n functionName,\r\n filePath: fullPath,\r\n pos: match.index,\r\n lineNr: posToLineNr(code, match.index),\r\n declarationCode: body.code.substring(0, body.openBracketPos),\r\n bodyCode: body.code.substring(body.openBracketPos)\r\n };\r\n\r\n } else {\r\n\r\n // Returning the rest of the file\r\n\r\n yield {\r\n functionName,\r\n filePath: fullPath,\r\n pos: match.index,\r\n lineNr: posToLineNr(code, match.index),\r\n\r\n declarationCode: code.substring(functionAttributeEndPos),\r\n bodyCode: code.substring(functionAttributeEndPos)\r\n };\r\n\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n}","import { FunctionsMap, TraverseFunctionResult } from \"./FunctionsMap\";\r\nimport { FileSystemWrapperBase } from './fileSystemWrapperBase';\r\nimport { BindingsParser, getCodeInBrackets, getEventNames, mapActivitiesToOrchestrator, posToLineNr, removeNamespace, TraversalRegexes } from \"./traverseFunctionProjectUtils\";\r\n\r\nexport abstract class FunctionProjectParser {\r\n\r\n // Collects all function.json files in a Functions project. Also tries to supplement them with bindings\r\n // extracted from code (if the project is .Net or Java). Also parses and organizes orchestrators/activities \r\n // (if the project uses Durable Functions)\r\n public static async parseFunctions(projectFolder: string, fileSystemWrapper: FileSystemWrapperBase, log: (s: any) => void)\r\n : Promise {\r\n \r\n const hostJsonMatch = await fileSystemWrapper.findFileRecursivelyAsync(projectFolder, 'host.json', false);\r\n if (!hostJsonMatch) {\r\n throw new Error('host.json file not found under the provided project path');\r\n }\r\n\r\n log(`>>> Found host.json at ${hostJsonMatch.filePath}`);\r\n\r\n const hostJsonFolder = fileSystemWrapper.dirName(hostJsonMatch.filePath);\r\n \r\n let parser: FunctionProjectParser;\r\n\r\n if (await fileSystemWrapper.isCSharpProjectAsync(hostJsonFolder)) {\r\n parser = new CSharpFunctionProjectParser(fileSystemWrapper, log);\r\n } else if (await fileSystemWrapper.isFSharpProjectAsync(hostJsonFolder)) {\r\n parser = new FSharpFunctionProjectParser(fileSystemWrapper, log);\r\n } else if (await fileSystemWrapper.isJavaProjectAsync(hostJsonFolder)) {\r\n parser = new JavaFunctionProjectParser(fileSystemWrapper, log);\r\n } else {\r\n parser = new FunctionProjectScriptParser(fileSystemWrapper, log);\r\n\r\n // For script-based functions use host.json's folder as the root\r\n projectFolder = hostJsonFolder;\r\n }\r\n\r\n const functions = await parser.traverseFunctions(projectFolder);\r\n \r\n // Also reading proxies\r\n const proxies = await fileSystemWrapper.readProxiesJson(projectFolder, log);\r\n\r\n return { functions, proxies, projectFolder };\r\n }\r\n\r\n public constructor(protected _fileSystemWrapper: FileSystemWrapperBase, protected _log: (s: any) => void) {\r\n \r\n }\r\n\r\n protected abstract traverseFunctions(projectFolder: string) : Promise;\r\n\r\n protected abstract getFunctionsAndTheirCodesAsync(functionNames: string[], hostJsonFolder: string)\r\n : Promise<{ name: string, code: string, filePath: string, pos: number, lineNr: number }[]> \r\n\r\n // Tries to match orchestrations and their activities by parsing source code\r\n protected async mapOrchestratorsAndActivitiesAsync(functions: FunctionsMap, projectFolder: string): Promise {\r\n\r\n const functionNames = Object.keys(functions);\r\n \r\n const orchestratorNames = functionNames.filter(name => functions[name].bindings.some((b: any) => b.type === 'orchestrationTrigger'));\r\n const orchestrators = await this.getFunctionsAndTheirCodesAsync(orchestratorNames, projectFolder);\r\n\r\n const activityNames = Object.keys(functions).filter(name => functions[name].bindings.some((b: any) => b.type === 'activityTrigger'));\r\n const activities = await this.getFunctionsAndTheirCodesAsync(activityNames, projectFolder);\r\n\r\n const entityNames = functionNames.filter(name => functions[name].bindings.some((b: any) => b.type === 'entityTrigger'));\r\n const entities = await this.getFunctionsAndTheirCodesAsync(entityNames, projectFolder);\r\n\r\n const otherFunctionNames = functionNames.filter(name => !functions[name].bindings.some((b: any) => ['orchestrationTrigger', 'activityTrigger', 'entityTrigger'].includes(b.type)));\r\n const otherFunctions = await this.getFunctionsAndTheirCodesAsync(otherFunctionNames, projectFolder);\r\n\r\n for (const orch of orchestrators) {\r\n\r\n // Trying to match this orchestrator with its calling function\r\n const regex = TraversalRegexes.getStartNewOrchestrationRegex(orch.name);\r\n for (const func of otherFunctions) {\r\n\r\n // If this function seems to be calling that orchestrator\r\n if (!!regex.exec(func.code)) {\r\n\r\n functions[orch.name].isCalledBy = functions[orch.name].isCalledBy ?? [];\r\n functions[orch.name].isCalledBy.push(func.name);\r\n }\r\n }\r\n\r\n // Matching suborchestrators\r\n for (const subOrch of orchestrators) {\r\n if (orch.name === subOrch.name) {\r\n continue;\r\n }\r\n\r\n // If this orchestrator seems to be calling that suborchestrator\r\n const regex = TraversalRegexes.getCallSubOrchestratorRegex(subOrch.name);\r\n if (!!regex.exec(orch.code)) {\r\n\r\n // Mapping that suborchestrator to this orchestrator\r\n functions[subOrch.name].isCalledBy = functions[subOrch.name].isCalledBy ?? [];\r\n functions[subOrch.name].isCalledBy.push(orch.name);\r\n }\r\n }\r\n\r\n // Mapping activities to orchestrators\r\n mapActivitiesToOrchestrator(functions, orch, activityNames);\r\n\r\n // Checking whether orchestrator calls itself\r\n if (!!TraversalRegexes.continueAsNewRegex.exec(orch.code)) {\r\n functions[orch.name].isCalledByItself = true;\r\n }\r\n\r\n // Trying to map event producers with their consumers\r\n const eventNames = getEventNames(orch.code);\r\n for (const eventName of eventNames) {\r\n \r\n const regex = TraversalRegexes.getRaiseEventRegex(eventName);\r\n for (const func of otherFunctions) {\r\n\r\n // If this function seems to be sending that event\r\n if (!!regex.exec(func.code)) {\r\n functions[orch.name].isSignalledBy = functions[orch.name].isSignalledBy ?? [];\r\n functions[orch.name].isSignalledBy.push({ name: func.name, signalName: eventName });\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const entity of entities) {\r\n\r\n // Trying to match this entity with its calling function\r\n for (const func of otherFunctions) {\r\n\r\n // If this function seems to be calling that entity\r\n const regex = TraversalRegexes.getSignalEntityRegex(entity.name);\r\n if (!!regex.exec(func.code)) {\r\n functions[entity.name].isCalledBy = functions[entity.name].isCalledBy ?? [];\r\n functions[entity.name].isCalledBy.push(func.name);\r\n }\r\n }\r\n }\r\n\r\n // Also adding file paths and code positions\r\n for (const func of otherFunctions.concat(orchestrators).concat(activities).concat(entities)) {\r\n functions[func.name].filePath = func.filePath;\r\n functions[func.name].pos = func.pos;\r\n functions[func.name].lineNr = func.lineNr;\r\n }\r\n\r\n return functions;\r\n }\r\n}\r\n\r\nclass FunctionProjectScriptParser extends FunctionProjectParser {\r\n\r\n protected async traverseFunctions(projectFolder: string): Promise{\r\n \r\n let functions: FunctionsMap;\r\n\r\n functions = await this._fileSystemWrapper.readFunctionsJson(projectFolder, this._log);\r\n\r\n // Now enriching it with more info extracted from code\r\n functions = await this.mapOrchestratorsAndActivitiesAsync(functions, projectFolder);\r\n\r\n return functions;\r\n }\r\n\r\n protected async getFunctionsAndTheirCodesAsync(functionNames: string[], hostJsonFolder: string): Promise<{ name: string; code: string; filePath: string; pos: number; lineNr: number; }[]> {\r\n\r\n const promises = functionNames.map(async name => {\r\n\r\n let match = await this._fileSystemWrapper.findFileRecursivelyAsync(this._fileSystemWrapper.joinPath(hostJsonFolder, name), '(index\\\\.ts|index\\\\.js|__init__\\\\.py)$', true);\r\n \r\n if (!match) {\r\n return undefined;\r\n }\r\n \r\n const pos = !match.pos ? 0 : match.pos;\r\n const lineNr = posToLineNr(match.code, pos);\r\n \r\n return { name, code: match.code, filePath: match.filePath, pos, lineNr };\r\n });\r\n \r\n return (await Promise.all(promises)).filter(f => !!f) as any;\r\n }\r\n}\r\n\r\nabstract class FunctionProjectCodeParser extends FunctionProjectParser {\r\n\r\n protected async traverseFunctions(projectFolder: string): Promise{\r\n \r\n let functions: FunctionsMap;\r\n\r\n functions = await this.traverseProjectCode(projectFolder);\r\n\r\n // Now enriching it with more info extracted from code\r\n functions = await this.mapOrchestratorsAndActivitiesAsync(functions, projectFolder);\r\n\r\n return functions;\r\n }\r\n\r\n protected abstract traverseProjectCode(projectFolder: string): Promise; \r\n}\r\n\r\nclass CSharpFunctionProjectParser extends FunctionProjectCodeParser {\r\n\r\n protected async getFunctionsAndTheirCodesAsync(functionNames: string[], hostJsonFolder: string): Promise<{ name: string; code: string; filePath: string; pos: number; lineNr: number; }[]> {\r\n \r\n const promises = functionNames.map(async name => {\r\n\r\n const match = await this._fileSystemWrapper.findFileRecursivelyAsync(hostJsonFolder, '.+\\\\.cs$', true, TraversalRegexes.getDotNetFunctionNameRegex(name));\r\n \r\n if (!match) {\r\n return undefined;\r\n }\r\n \r\n const pos = !match.pos ? 0 : match.pos;\r\n const lineNr = posToLineNr(match.code, pos);\r\n const code = getCodeInBrackets(match.code!, match.pos! + match.length!, '{', '}', '\\n').code;\r\n \r\n return { name, code, filePath: match.filePath, pos, lineNr };\r\n });\r\n \r\n return (await Promise.all(promises)).filter(f => !!f) as any;\r\n }\r\n\r\n protected async traverseProjectCode(projectFolder: string): Promise {\r\n\r\n const result: any = {};\r\n\r\n const fileNameRegex = new RegExp('.+\\\\.cs$', 'i');\r\n\r\n for await (const func of this._fileSystemWrapper.findFunctionsRecursivelyAsync(projectFolder, fileNameRegex, BindingsParser.getFunctionAttributeRegex(), 3)) {\r\n \r\n const bindings = BindingsParser.tryExtractBindings(func.declarationCode);\r\n \r\n if ( !(\r\n bindings.some(b => b.type === 'orchestrationTrigger') ||\r\n bindings.some(b => b.type === 'entityTrigger') ||\r\n bindings.some(b => b.type === 'activityTrigger')\r\n )) {\r\n \r\n // Also trying to extract multiple output bindings\r\n bindings.push(...await this.extractOutputBindings(projectFolder, func.declarationCode, fileNameRegex));\r\n }\r\n \r\n result[func.functionName] = {\r\n \r\n filePath: func.filePath,\r\n pos: func.pos,\r\n lineNr: func.lineNr,\r\n \r\n bindings: [...bindings]\r\n };\r\n }\r\n \r\n return result;\r\n }\r\n\r\n private async extractOutputBindings(projectFolder: string, functionCode: string, fileNameRegex: RegExp): Promise<{ type: string, direction: string }[]> {\r\n \r\n const returnTypeMatch = BindingsParser.functionReturnTypeRegex.exec(functionCode);\r\n if (!returnTypeMatch) {\r\n return [];\r\n }\r\n \r\n const returnTypeName = removeNamespace(returnTypeMatch[3]);\r\n if (!returnTypeName) {\r\n return [];\r\n }\r\n \r\n const returnTypeDefinition = await this._fileSystemWrapper.findFileRecursivelyAsync(projectFolder, fileNameRegex, true, TraversalRegexes.getClassDefinitionRegex(returnTypeName));\r\n if (!returnTypeDefinition) {\r\n return [];\r\n }\r\n \r\n const classBody = getCodeInBrackets(returnTypeDefinition.code!, (returnTypeDefinition.pos ?? 0) + (returnTypeDefinition.length ?? 0), '{', '}');\r\n if (!classBody.code) {\r\n return [];\r\n }\r\n \r\n return BindingsParser.tryExtractBindings(classBody.code);\r\n }\r\n}\r\n\r\nclass FSharpFunctionProjectParser extends FunctionProjectCodeParser {\r\n\r\n protected async getFunctionsAndTheirCodesAsync(functionNames: string[], hostJsonFolder: string): Promise<{ name: string; code: string; filePath: string; pos: number; lineNr: number; }[]> {\r\n\r\n const promises = functionNames.map(async name => {\r\n\r\n const match = await this._fileSystemWrapper.findFileRecursivelyAsync(hostJsonFolder, '.+\\\\.fs$', true, TraversalRegexes.getDotNetFunctionNameRegex(name));\r\n \r\n if (!match) {\r\n return undefined;\r\n }\r\n\r\n const code = getCodeInBrackets(match.code!, match.pos! + match.length!, '{', '}', '\\n').code;\r\n const pos = !match.pos ? 0 : match.pos;\r\n const lineNr = posToLineNr(match.code, pos);\r\n\r\n return { name, code, filePath: match.filePath, pos, lineNr };\r\n });\r\n\r\n return (await Promise.all(promises)).filter(f => !!f) as any;\r\n }\r\n\r\n protected async traverseProjectCode(projectFolder: string): Promise {\r\n\r\n const result: any = {};\r\n\r\n for await (const func of this._fileSystemWrapper.findFunctionsRecursivelyAsync(projectFolder, new RegExp('.+\\\\.fs$', 'i'), BindingsParser.getFSharpFunctionAttributeRegex(), 2)) {\r\n \r\n const bindings = BindingsParser.tryExtractBindings(func.declarationCode);\r\n \r\n result[func.functionName] = {\r\n\r\n filePath: func.filePath,\r\n pos: func.pos,\r\n lineNr: func.lineNr,\r\n\r\n bindings: [...bindings]\r\n };\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nclass JavaFunctionProjectParser extends FunctionProjectCodeParser {\r\n\r\n protected async getFunctionsAndTheirCodesAsync(functionNames: string[], hostJsonFolder: string): Promise<{ name: string; code: string; filePath: string; pos: number; lineNr: number; }[]> {\r\n\r\n const promises = functionNames.map(async name => {\r\n\r\n const match = await this._fileSystemWrapper.findFileRecursivelyAsync(hostJsonFolder, '.+\\\\.java$', true, TraversalRegexes.getDotNetFunctionNameRegex(name));\r\n \r\n if (!match) {\r\n return undefined;\r\n }\r\n\r\n const code = getCodeInBrackets(match.code!, match.pos! + match.length!, '{', '}', '\\n').code;\r\n const pos = !match.pos ? 0 : match.pos;\r\n const lineNr = posToLineNr(match.code, pos);\r\n\r\n return { name, code, filePath: match.filePath, pos, lineNr };\r\n });\r\n\r\n return (await Promise.all(promises)).filter(f => !!f) as any;\r\n }\r\n\r\n protected async traverseProjectCode(projectFolder: string): Promise {\r\n\r\n const result: any = {};\r\n\r\n for await (const func of this._fileSystemWrapper.findFunctionsRecursivelyAsync(projectFolder, new RegExp('.+\\\\.java$', 'i'), BindingsParser.getJavaFunctionAttributeRegex(), 1)) {\r\n \r\n const bindings = BindingsParser.tryExtractBindings(func.declarationCode);\r\n \r\n result[func.functionName] = {\r\n\r\n filePath: func.filePath,\r\n pos: func.pos,\r\n lineNr: func.lineNr,\r\n\r\n bindings: [...bindings]\r\n };\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { FunctionsMap } from \"./FunctionsMap\";\r\n\r\nexport function cleanupFunctionName(name: string): string {\r\n\r\n if (!name) {\r\n return name;\r\n }\r\n\r\n const nameofMatch = new RegExp(`nameof\\\\s*\\\\(\\\\s*([\\\\w\\\\.]+)\\\\s*\\\\)`).exec(name);\r\n if (!!nameofMatch) {\r\n\r\n return removeNamespace(nameofMatch[1]);\r\n }\r\n\r\n name = name.trim();\r\n\r\n if (name.startsWith('\"')) {\r\n return name.replace(/^\"/, '').replace(/\"$/, '');\r\n }\r\n\r\n return removeNamespace(name);\r\n}\r\n\r\nexport function removeNamespace(name: string): string {\r\n\r\n if (!name) {\r\n return name;\r\n }\r\n\r\n const dotPos = name.lastIndexOf('.');\r\n if (dotPos >= 0) {\r\n name = name.substring(dotPos + 1);\r\n }\r\n\r\n return name.trim();\r\n}\r\n\r\n// Tries to extract event names that this orchestrator is awaiting\r\nexport function getEventNames(orchestratorCode: string): string[] {\r\n\r\n const result = [];\r\n\r\n const regex = TraversalRegexes.waitForExternalEventRegex;\r\n var match: RegExpExecArray | null;\r\n while (!!(match = regex.exec(orchestratorCode))) {\r\n result.push(match[4]);\r\n }\r\n\r\n return result;\r\n}\r\n\r\n// Tries to match orchestrator with its activities\r\nexport function mapActivitiesToOrchestrator(functions: FunctionsMap, orch: {name: string, code: string}, activityNames: string[]): void {\r\n\r\n for (const activityName of activityNames) {\r\n\r\n // If this orchestrator seems to be calling this activity\r\n const regex = TraversalRegexes.getCallActivityRegex(activityName);\r\n if (!!regex.exec(orch.code)) {\r\n\r\n // Then mapping this activity to this orchestrator\r\n functions[activityName].isCalledBy = functions[activityName].isCalledBy ?? [];\r\n functions[activityName].isCalledBy.push(orch.name);\r\n }\r\n }\r\n}\r\n\r\n// Primitive way of getting a line number out of symbol position\r\nexport function posToLineNr(code: string | undefined, pos: number): number {\r\n if (!code) {\r\n return 0;\r\n }\r\n const lineBreaks = code.substr(0, pos).match(/(\\r\\n|\\r|\\n)/g);\r\n return !lineBreaks ? 1 : lineBreaks.length + 1;\r\n}\r\n\r\n// Complements regex's inability to keep up with nested brackets\r\nexport function getCodeInBrackets(str: string, startFrom: number, openingBracket: string, closingBracket: string, mustHaveSymbols: string = ''): { code: string, openBracketPos: number } {\r\n\r\n var bracketCount = 0, openBracketPos = -1, mustHaveSymbolFound = !mustHaveSymbols;\r\n\r\n for (var i = startFrom; i < str.length; i++) {\r\n\r\n switch (str[i]) {\r\n case openingBracket:\r\n\r\n if (bracketCount <= 0) {\r\n openBracketPos = i;\r\n }\r\n bracketCount++;\r\n\r\n break;\r\n case closingBracket:\r\n\r\n bracketCount--;\r\n if (bracketCount <= 0 && mustHaveSymbolFound) {\r\n return { code: str.substring(startFrom, i + 1), openBracketPos: openBracketPos - startFrom };\r\n }\r\n \r\n break;\r\n }\r\n\r\n if (bracketCount > 0 && mustHaveSymbols.includes(str[i])) {\r\n mustHaveSymbolFound = true;\r\n }\r\n }\r\n return { code: '', openBracketPos: -1 };\r\n}\r\n\r\n// Complements regex's inability to keep up with nested brackets\r\nexport function getCodeInBracketsReverse(str: string, openingBracket: string, closingBracket: string): { code: string, openBracketPos: number } {\r\n\r\n var bracketCount = 0, closingBracketPos = 0;\r\n \r\n for (var i = str.length - 1; i >= 0; i--) {\r\n\r\n switch (str[i]) {\r\n case closingBracket:\r\n\r\n if (bracketCount <= 0) {\r\n closingBracketPos = i;\r\n }\r\n bracketCount++;\r\n\r\n break;\r\n case openingBracket:\r\n\r\n bracketCount--;\r\n if (bracketCount <= 0 ) {\r\n return { code: str.substring(0, closingBracketPos + 1), openBracketPos: i };\r\n }\r\n \r\n break;\r\n }\r\n }\r\n return { code: '', openBracketPos: -1 };\r\n}\r\n\r\n// General-purpose regexes\r\nexport class TraversalRegexes {\r\n\r\n static getStartNewOrchestrationRegex(orchName: string): RegExp {\r\n return new RegExp(`(StartNew|StartNewAsync|start_new|scheduleNewOrchestrationInstance)(\\\\s*<[\\\\w\\\\.-\\\\[\\\\]\\\\<\\\\>,\\\\s]+>)?\\\\s*\\\\(\\\\s*([\"'\\`]|nameof\\\\s*\\\\(\\\\s*[\\\\w\\\\.-]*|[\\\\w\\\\s\\\\.]+\\\\.\\\\s*)${orchName}\\\\s*[\"'\\\\),]{1}`, 'i');\r\n }\r\n\r\n static getCallSubOrchestratorRegex(subOrchName: string): RegExp {\r\n return new RegExp(`(CallSubOrchestrator|CallSubOrchestratorWithRetry|call_sub_orchestrator)(Async)?(\\\\s*<[\\\\w\\\\.-\\\\[\\\\]\\\\<\\\\>,\\\\s]+>)?\\\\s*\\\\(\\\\s*([\"'\\`]|nameof\\\\s*\\\\(\\\\s*[\\\\w\\\\.-]*|[\\\\w\\\\s\\\\.]+\\\\.\\\\s*)${subOrchName}\\\\s*[\"'\\\\),]{1}`, 'i');\r\n }\r\n\r\n static readonly continueAsNewRegex = new RegExp(`ContinueAsNew\\\\s*\\\\(`, 'i');\r\n\r\n static getRaiseEventRegex(eventName: string): RegExp {\r\n return new RegExp(`(RaiseEvent|raise_event)(Async)?(.|\\r|\\n)*${eventName}`, 'i');\r\n }\r\n\r\n static getSignalEntityRegex(entityName: string): RegExp {\r\n return new RegExp(`${entityName}\\\\s*[\"'>]{1}`);\r\n }\r\n\r\n static readonly waitForExternalEventRegex = new RegExp(`(WaitForExternalEvent|wait_for_external_event)(<[\\\\s\\\\w,\\\\.-\\\\[\\\\]\\\\(\\\\)\\\\<\\\\>]+>)?\\\\s*\\\\(\\\\s*(nameof\\\\s*\\\\(\\\\s*|[\"'\\`]|[\\\\w\\\\s\\\\.]+\\\\.\\\\s*)?([\\\\s\\\\w\\\\.-]+)\\\\s*[\"'\\`\\\\),]{1}`, 'gi');\r\n\r\n static getDotNetFunctionNameRegex(funcName: string): RegExp {\r\n return new RegExp(`FunctionName(Attribute)?\\\\s*\\\\(\\\\s*(nameof\\\\s*\\\\(\\\\s*|[\"'\\`]|[\\\\w\\\\s\\\\.]+\\\\.\\\\s*)${funcName}\\\\s*[\"'\\`\\\\)]{1}`)\r\n }\r\n\r\n static getJavaFunctionNameRegex(funcName: string): RegExp {\r\n return new RegExp(`@\\\\s*FunctionName\\\\s*\\\\([\"\\\\s\\\\w\\\\.-]*${funcName}\"?\\\\)`)\r\n }\r\n\r\n static getCallActivityRegex(activityName: string): RegExp {\r\n return new RegExp(`(CallActivity|call_activity)[\\\\s\\\\w,\\\\.-<>\\\\[\\\\]\\\\(\\\\)\\\\?]*\\\\([\\\\s\\\\w\\\\.-]*[\"'\\`]?${activityName}\\\\s*[\"'\\`\\\\),]{1}`, 'i');\r\n }\r\n\r\n static getClassDefinitionRegex(className: string): RegExp {\r\n return new RegExp(`class\\\\s*${className}`)\r\n }\r\n}\r\n\r\n// In .Net not all bindings are mentioned in function.json, so we need to analyze source code to extract them\r\nexport class BindingsParser {\r\n\r\n // Extracts additional bindings info from C#/F# source code\r\n static tryExtractBindings(funcCode: string): {type: string, direction: string}[] {\r\n\r\n const result: {type: string, direction: string}[] = [];\r\n\r\n if (!funcCode) {\r\n return result;\r\n }\r\n\r\n const regex = this.bindingAttributeRegex;\r\n var match: RegExpExecArray | null;\r\n while (!!(match = regex.exec(funcCode))) {\r\n\r\n const isReturn = !!match[3];\r\n\r\n let attributeName = match[4];\r\n if (attributeName.endsWith(`Attribute`)) {\r\n attributeName = attributeName.substring(0, attributeName.length - `Attribute`.length);\r\n }\r\n\r\n const attributeCodeStartIndex = match.index + match[0].length;\r\n const attributeCode = getCodeInBrackets(funcCode, attributeCodeStartIndex, '(', ')', '').code;\r\n\r\n this.isOutRegex.lastIndex = attributeCodeStartIndex + attributeCode.length;\r\n const isOut = !!this.isOutRegex.exec(funcCode);\r\n\r\n switch (attributeName) {\r\n case 'BlobInput':\r\n case 'BlobOutput': \r\n case 'Blob': {\r\n const binding: any = {\r\n type: 'blob',\r\n direction: attributeName === 'Blob' ? (isReturn || isOut ? 'out' : 'in') : (attributeName === 'BlobOutput' ? 'out' : 'in')\r\n };\r\n\r\n const paramsMatch = this.blobParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.path = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'BlobTrigger': {\r\n const binding: any = { type: 'blobTrigger' };\r\n\r\n const paramsMatch = this.blobParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.path = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'TableInput':\r\n case 'TableOutput': \r\n case 'Table': {\r\n const binding: any = {\r\n type: 'table',\r\n direction: attributeName === 'Table' ? (isReturn || isOut ? 'out' : 'in') : (attributeName === 'TableOutput' ? 'out' : 'in')\r\n };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.tableName = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'CosmosDBInput': \r\n case 'CosmosDBOutput': \r\n case 'CosmosDB': {\r\n const binding: any = {\r\n type: 'cosmosDB',\r\n direction: attributeName === 'CosmosDB' ? (isReturn || isOut ? 'out' : 'in') : (attributeName === 'CosmosDBOutput' ? 'out' : 'in')\r\n };\r\n\r\n const paramsMatch = this.cosmosDbParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.databaseName = paramsMatch[1];\r\n binding.collectionName = paramsMatch[3];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'CosmosDBTrigger': {\r\n const binding: any = { type: 'cosmosDBTrigger' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.databaseName = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'EventGrid': \r\n case 'EventGridOutput': {\r\n const binding: any = { type: 'eventGrid', direction: 'out' };\r\n\r\n const paramsMatch = this.eventGridParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.topicEndpointUri = paramsMatch[1];\r\n binding.topicKeySetting = paramsMatch[3];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'EventGridTrigger': {\r\n const binding: any = { type: 'eventGridTrigger' };\r\n\r\n const paramsMatch = this.eventGridParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.topicEndpointUri = paramsMatch[1];\r\n binding.topicKeySetting = paramsMatch[3];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'EventHub': \r\n case 'EventHubOutput': {\r\n const binding: any = { type: 'eventHub', direction: 'out' };\r\n\r\n const paramsMatch = this.eventHubParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.eventHubName = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'EventHubTrigger': {\r\n const binding: any = { type: 'eventHubTrigger' };\r\n\r\n const paramsMatch = this.eventHubParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.eventHubName = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'Kafka': \r\n case 'KafkaOutput': {\r\n const binding: any = { type: 'kafka', direction: 'out' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.brokerList = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'KafkaTrigger': {\r\n const binding: any = { type: 'kafkaTrigger' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.brokerList = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'Queue': \r\n case 'QueueOutput': {\r\n const binding: any = { type: 'queue', direction: 'out' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['queueName'] = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'QueueTrigger': {\r\n const binding: any = { type: 'queueTrigger' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['queueName'] = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'ServiceBus': \r\n case 'ServiceBusOutput': {\r\n const binding: any = { type: 'serviceBus', direction: 'out' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['queueName'] = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'ServiceBusTrigger': \r\n case 'ServiceBusQueueTrigger': \r\n case 'ServiceBusTopicTrigger': {\r\n const binding: any = { type: 'serviceBusTrigger' };\r\n\r\n const paramsMatch = this.singleParamRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['queueName'] = paramsMatch[2];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'SignalRConnectionInfo': \r\n case 'SignalRConnectionInfoInput': {\r\n const binding: any = { type: 'signalRConnectionInfo', direction: 'in' };\r\n\r\n const paramsMatch = this.signalRConnInfoParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding.hubName = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'SignalR': \r\n case 'SignalROutput': {\r\n const binding: any = { type: 'signalR', direction: 'out' };\r\n\r\n const paramsMatch = this.signalRParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['hubName'] = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'SignalRTrigger': {\r\n const binding: any = { type: 'signalRTrigger' };\r\n\r\n const paramsMatch = this.signalRParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['hubName'] = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'RabbitMQ': \r\n case 'RabbitMQOutput': {\r\n const binding: any = { type: 'rabbitMQ', direction: 'out' };\r\n\r\n const paramsMatch = this.rabbitMqParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['queueName'] = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'RabbitMQTrigger': {\r\n const binding: any = { type: 'rabbitMQTrigger' };\r\n\r\n const paramsMatch = this.rabbitMqParamsRegex.exec(attributeCode);\r\n if (!!paramsMatch) {\r\n binding['queueName'] = paramsMatch[1];\r\n }\r\n result.push(binding);\r\n\r\n break;\r\n }\r\n case 'SendGrid': \r\n case 'SendGridOutput': {\r\n result.push({ type: 'sendGrid', direction: 'out' });\r\n break;\r\n }\r\n case 'TwilioSms': {\r\n result.push({ type: 'twilioSms', direction: 'out' });\r\n break;\r\n }\r\n case 'HttpTrigger': {\r\n const binding: any = { type: 'httpTrigger', methods: [] };\r\n\r\n const httpTriggerRouteMatch = this.httpTriggerRouteRegex.exec(attributeCode);\r\n if (!!httpTriggerRouteMatch) {\r\n binding.route = httpTriggerRouteMatch[1];\r\n }\r\n\r\n const lowerAttributeCode = attributeCode.toLowerCase();\r\n for (const httpMethod of this.httpMethods) {\r\n \r\n if (lowerAttributeCode.includes(`\"${httpMethod}\"`)) {\r\n \r\n binding.methods.push(httpMethod);\r\n }\r\n }\r\n\r\n result.push(binding);\r\n\r\n result.push({ type: 'http', direction: 'out' });\r\n\r\n break;\r\n }\r\n case 'OrchestrationTrigger':\r\n case 'DurableOrchestrationTrigger': {\r\n result.push({ type: 'orchestrationTrigger', direction: 'in' });\r\n break;\r\n }\r\n case 'ActivityTrigger':\r\n case 'DurableActivityTrigger': {\r\n result.push({ type: 'activityTrigger', direction: 'in' });\r\n break;\r\n }\r\n case 'EntityTrigger':\r\n case 'DurableEntityTrigger': {\r\n result.push({ type: 'entityTrigger', direction: 'in' });\r\n break;\r\n }\r\n default: {\r\n result.push({ type: attributeName, direction: isReturn || isOut ? 'out' : 'in' });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static readonly bindingAttributeRegex = new RegExp(`(\\\\[|@)(<)?\\\\s*(return:)?\\\\s*(\\\\w+)`, 'g');\r\n static readonly singleParamRegex = new RegExp(`(\"|nameof\\\\s*\\\\()?([\\\\w\\\\.-]+)`);\r\n static readonly eventHubParamsRegex = new RegExp(`\"([^\"]+)\"`);\r\n static readonly signalRParamsRegex = new RegExp(`\"([^\"]+)\"`);\r\n static readonly rabbitMqParamsRegex = new RegExp(`\"([^\"]+)\"`);\r\n static readonly blobParamsRegex = new RegExp(`\"([^\"]+)\"`);\r\n static readonly cosmosDbParamsRegex = new RegExp(`\"([^\"]+)\"(.|\\r|\\n)+?\"([^\"]+)\"`);\r\n static readonly signalRConnInfoParamsRegex = new RegExp(`\"([^\"]+)\"`);\r\n static readonly eventGridParamsRegex = new RegExp(`\"([^\"]+)\"(.|\\r|\\n)+?\"([^\"]+)\"`);\r\n\r\n static readonly isOutRegex = new RegExp(`^\\\\s*\\\\]\\\\s*(out |ICollector|IAsyncCollector).*?(,|\\\\()`, 'g');\r\n\r\n static readonly httpMethods = [`get`, `head`, `post`, `put`, `delete`, `connect`, `options`, `trace`, `patch`];\r\n static readonly httpTriggerRouteRegex = new RegExp(`Route\\\\s*=\\\\s*\"(.*)\"`);\r\n\r\n static readonly functionReturnTypeRegex = new RegExp(`public\\\\s*(static\\\\s*|async\\\\s*)*(Task\\\\s*<\\\\s*)?([\\\\w\\\\.]+)`);\r\n\r\n static getFunctionAttributeRegex(): RegExp {\r\n return new RegExp(`\\\\[\\\\s*Function(Name)?(Attribute)?\\\\s*\\\\(([\"\\\\w\\\\s\\\\.\\\\(\\\\)-]+)\\\\)\\\\s*\\\\]`, 'g');\r\n }\r\n\r\n static getJavaFunctionAttributeRegex(): RegExp {\r\n return new RegExp(`@\\\\s*FunctionName\\\\s*\\\\(([\"\\\\w\\\\s\\\\.\\\\(\\\\)-]+)\\\\)`, 'g');\r\n }\r\n\r\n static getFSharpFunctionAttributeRegex(): RegExp {\r\n return new RegExp(`\\\\[<\\\\s*Function(Name)?\\\\s*\\\\(([\"\\\\w\\\\s\\\\.\\\\(\\\\)-]+)\\\\)`, 'g');\r\n }\r\n}\r\n","module.exports = require(\"vscode\");","// 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\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import * as vscode from 'vscode';\r\nimport { FileSystemWrapper } from './FileSystemWrapper';\r\n\r\nimport { FunctionGraphView } from './FunctionGraphView';\r\n\r\nlet graphViews: FunctionGraphView[] = [];\r\n\r\nconst fsWrapper = new FileSystemWrapper();\r\n\r\nconst MaxProjectsToShowAutomatically = 5;\r\n\r\nasync function showAllFunctionProjects(context: vscode.ExtensionContext) {\r\n\r\n\tif (!vscode.workspace.workspaceFolders) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst hostJsonFolders = [];\r\n\r\n\ttry{\r\n\r\n\t\tfor (const folder of vscode.workspace.workspaceFolders) {\r\n\r\n\t\t\tfor await (const hostJsonPath of fsWrapper.findFilesRecursivelyAsync(folder.uri.toString(), new RegExp('host.json', 'i'))) {\r\n\t\t\t\t\r\n\t\t\t\thostJsonFolders.push(fsWrapper.dirName(hostJsonPath));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (hostJsonFolders.length > MaxProjectsToShowAutomatically) {\r\n\t\t\t\r\n\t\t\tconst userResponse = await vscode.window.showWarningMessage(\r\n\t\t\t\t`az-func-as-a-graph found ${hostJsonFolders.length} Azure Functions projects in current workspace. Do you want to visualize all of them?`,\r\n\t\t\t\t'Yes', 'No');\r\n\r\n\t\t\tif (userResponse !== 'Yes') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t} catch (err: any) {\r\n\t\t\r\n\t\tvscode.window.showErrorMessage(`az-func-as-a-graph failed. ${err.message ?? err}`);\r\n\t}\r\n\r\n\tfor (const hostJsonFolder of hostJsonFolders) {\r\n\t\t\r\n\t\tgraphViews.push(new FunctionGraphView(context, vscode.Uri.parse(hostJsonFolder)));\r\n\t}\r\n}\r\n\r\nexport async function activate(context: vscode.ExtensionContext) {\r\n\r\n\tcontext.subscriptions.push(\r\n\r\n\t\tvscode.commands.registerCommand('az-func-as-a-graph.ShowGraph', async (item?: vscode.Uri) => {\r\n\r\n\t\t\tif (!!item) {\r\n\t\t\t\t\r\n\t\t\t\tconst pathToHostJson = item.toString();\r\n\r\n\t\t\t\tif (pathToHostJson.toLowerCase().endsWith('host.json')) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tgraphViews.push(new FunctionGraphView(context, vscode.Uri.parse(fsWrapper.dirName(pathToHostJson))));\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tawait showAllFunctionProjects(context);\r\n\t\t})\t\t\r\n\t);\r\n\r\n\tif (!vscode.workspace.workspaceFolders) {\r\n\t\treturn;\r\n\t}\r\n\r\n const config = vscode.workspace.getConfiguration('az-func-as-a-graph');\r\n\r\n\tif (!!config.get('showGraphAtStartup', true)) {\r\n\r\n\t\t// Showing graphs of all Functions in the workspace\r\n\t\tawait showAllFunctionProjects(context);\r\n\t}\r\n}\r\n\r\n// This method is called when your extension is deactivated\r\nexport function deactivate() {\r\n\r\n\tfor (const view of graphViews) {\r\n\t\t\r\n\t\tview.cleanup();\r\n\t}\r\n}"],"names":["FileSystemWrapper","FileSystemWrapperBase","joinPath","path1","path2","vscode","Uri","parse","toString","dirName","i","lastIndexOf","Error","substring","async","path","uri","bytes","workspace","fs","readFile","TextDecoder","decode","stat","type","FileType","Directory","readDirectory","map","f","File","err","FunctionGraphView","constructor","_context","_functionProjectUri","_webViewPanel","this","_staticsFolder","extensionUri","showWebView","cleanup","dispose","title","fsPath","panel","window","createWebviewPanel","viewType","ViewColumn","One","retainContextWhenHidden","enableScripts","localResourceRoots","fileUri","then","htmlBytes","html","fixLinksToStatics","webview","embedTheme","showErrorMessage","message","onDidReceiveMessage","request","handleMessageFromWebView","undefined","subscriptions","includes","activeColorTheme","kind","replace","webView","showInformationMessage","data","looksLikeSvg","showSaveDialog","defaultUri","file","filters","filePath","TextEncoder","encode","writeFile","_traversalResult","JSON","stringify","functionName","functionOrProxy","startsWith","proxies","substr","functions","showTextDocument","ed","pos","document","positionAt","selection","Selection","revealRange","Range","FunctionProjectParser","parseFunctions","console","log","res","Object","keys","length","postMessage","catch","originalHtml","staticsFolder","resultHtml","regex","match","exec","relativePath","localPath","newPath","asWebviewUri","endsWith","toLowerCase","ExcludedFolders","hostJsonFolder","promises","readDir","fullPath","functionJsonFilePath","isDirectory","functionJsonExists","pathExists","functionJsonString","functionJson","bindings","isCalledBy","isSignalledBy","Promise","all","projectFolder","proxiesJsonPath","proxiesJsonString","notAddedToCsProjFile","isCSharpProjectAsync","csProjFile","findFileRecursivelyAsync","proxiesJsonEntryRegex","RegExp","code","proxyName","proxy","warningNotAddedToCsProjFile","index","lineNr","posToLineNr","some","fn","folder","fileName","returnFileContents","pattern","fileNameRegex","subFolders","name","push","subFolder","result","findFilesRecursivelyAsync","functionAttributeRegex","functionNamePosInRegex","cleanupFunctionName","functionAttributeEndPos","body","getCodeInBrackets","openBracketPos","declarationCode","bodyCode","static","fileSystemWrapper","hostJsonMatch","parser","CSharpFunctionProjectParser","isFSharpProjectAsync","FSharpFunctionProjectParser","isJavaProjectAsync","JavaFunctionProjectParser","FunctionProjectScriptParser","traverseFunctions","readProxiesJson","_fileSystemWrapper","_log","functionNames","orchestratorNames","filter","b","orchestrators","getFunctionsAndTheirCodesAsync","activityNames","activities","entityNames","entities","otherFunctionNames","otherFunctions","orch","TraversalRegexes","getStartNewOrchestrationRegex","func","subOrch","getCallSubOrchestratorRegex","mapActivitiesToOrchestrator","continueAsNewRegex","isCalledByItself","eventNames","getEventNames","eventName","getRaiseEventRegex","signalName","entity","getSignalEntityRegex","concat","readFunctionsJson","mapOrchestratorsAndActivitiesAsync","FunctionProjectCodeParser","traverseProjectCode","getDotNetFunctionNameRegex","findFunctionsRecursivelyAsync","BindingsParser","getFunctionAttributeRegex","tryExtractBindings","extractOutputBindings","functionCode","returnTypeMatch","functionReturnTypeRegex","returnTypeName","removeNamespace","returnTypeDefinition","getClassDefinitionRegex","classBody","getFSharpFunctionAttributeRegex","getJavaFunctionAttributeRegex","dotPos","trim","str","startFrom","openingBracket","closingBracket","mustHaveSymbols","bracketCount","mustHaveSymbolFound","nameofMatch","orchestratorCode","waitForExternalEventRegex","activityName","getCallActivityRegex","lineBreaks","closingBracketPos","orchName","subOrchName","entityName","funcName","className","funcCode","bindingAttributeRegex","isReturn","attributeName","attributeCodeStartIndex","attributeCode","isOutRegex","lastIndex","isOut","binding","direction","paramsMatch","blobParamsRegex","singleParamRegex","tableName","cosmosDbParamsRegex","databaseName","collectionName","eventGridParamsRegex","topicEndpointUri","topicKeySetting","eventHubParamsRegex","eventHubName","brokerList","signalRConnInfoParamsRegex","hubName","signalRParamsRegex","rabbitMqParamsRegex","methods","httpTriggerRouteMatch","httpTriggerRouteRegex","route","lowerAttributeCode","httpMethod","httpMethods","module","exports","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","graphViews","fsWrapper","MaxProjectsToShowAutomatically","showAllFunctionProjects","context","workspaceFolders","hostJsonFolders","hostJsonPath","showWarningMessage","commands","registerCommand","item","pathToHostJson","getConfiguration","get","view"],"sourceRoot":""} \ No newline at end of file diff --git a/vscode-web-ext/dist/web/test/suite/index.js b/vscode-web-ext/dist/web/test/suite/index.js index d8823b4..35400f6 100644 --- a/vscode-web-ext/dist/web/test/suite/index.js +++ b/vscode-web-ext/dist/web/test/suite/index.js @@ -1,25698 +1,2 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((module) => { - -"use strict"; -module.exports = require("vscode"); - -/***/ }), -/* 2 */, -/* 3 */, -/* 4 */, -/* 5 */, -/* 6 */, -/* 7 */, -/* 8 */ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -// mocha@10.2.0 in javascript ES2018 -(function (global, factory) { - true ? module.exports = factory() : - 0; -})(this, (function () { 'use strict'; - - var global$2 = (typeof __webpack_require__.g !== "undefined" ? __webpack_require__.g : - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : {}); - - var global$1 = (typeof global$2 !== "undefined" ? global$2 : - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : {}); - - // shim for using process in browser - // based off https://github.com/defunctzombie/node-process/blob/master/browser.js - - function defaultSetTimout$1() { - throw new Error('setTimeout has not been defined'); - } - function defaultClearTimeout$1 () { - throw new Error('clearTimeout has not been defined'); - } - var cachedSetTimeout$1 = defaultSetTimout$1; - var cachedClearTimeout$1 = defaultClearTimeout$1; - if (typeof global$1.setTimeout === 'function') { - cachedSetTimeout$1 = setTimeout; - } - if (typeof global$1.clearTimeout === 'function') { - cachedClearTimeout$1 = clearTimeout; - } - - function runTimeout$1(fun) { - if (cachedSetTimeout$1 === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout$1 === defaultSetTimout$1 || !cachedSetTimeout$1) && setTimeout) { - cachedSetTimeout$1 = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout$1(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout$1.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout$1.call(this, fun, 0); - } - } - - - } - function runClearTimeout$1(marker) { - if (cachedClearTimeout$1 === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout$1 === defaultClearTimeout$1 || !cachedClearTimeout$1) && clearTimeout) { - cachedClearTimeout$1 = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout$1(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout$1.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout$1.call(this, marker); - } - } - - - - } - var queue$1 = []; - var draining$1 = false; - var currentQueue$1; - var queueIndex$1 = -1; - - function cleanUpNextTick$1() { - if (!draining$1 || !currentQueue$1) { - return; - } - draining$1 = false; - if (currentQueue$1.length) { - queue$1 = currentQueue$1.concat(queue$1); - } else { - queueIndex$1 = -1; - } - if (queue$1.length) { - drainQueue$1(); - } - } - - function drainQueue$1() { - if (draining$1) { - return; - } - var timeout = runTimeout$1(cleanUpNextTick$1); - draining$1 = true; - - var len = queue$1.length; - while(len) { - currentQueue$1 = queue$1; - queue$1 = []; - while (++queueIndex$1 < len) { - if (currentQueue$1) { - currentQueue$1[queueIndex$1].run(); - } - } - queueIndex$1 = -1; - len = queue$1.length; - } - currentQueue$1 = null; - draining$1 = false; - runClearTimeout$1(timeout); - } - function nextTick$1(fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue$1.push(new Item$1(fun, args)); - if (queue$1.length === 1 && !draining$1) { - runTimeout$1(drainQueue$1); - } - } - // v8 likes predictible objects - function Item$1(fun, array) { - this.fun = fun; - this.array = array; - } - Item$1.prototype.run = function () { - this.fun.apply(null, this.array); - }; - var title$1 = 'browser'; - var platform$1 = 'browser'; - var browser$4 = true; - var env$1 = {}; - var argv$1 = []; - var version$2 = ''; // empty string to avoid regexp issues - var versions$1 = {}; - var release$1 = {}; - var config$1 = {}; - - function noop$1() {} - - var on$1 = noop$1; - var addListener$1 = noop$1; - var once$1 = noop$1; - var off$1 = noop$1; - var removeListener$1 = noop$1; - var removeAllListeners$1 = noop$1; - var emit$1 = noop$1; - - function binding$1(name) { - throw new Error('process.binding is not supported'); - } - - function cwd$1 () { return '/' } - function chdir$1 (dir) { - throw new Error('process.chdir is not supported'); - }function umask$1() { return 0; } - - // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js - var performance$1 = global$1.performance || {}; - var performanceNow$1 = - performance$1.now || - performance$1.mozNow || - performance$1.msNow || - performance$1.oNow || - performance$1.webkitNow || - function(){ return (new Date()).getTime() }; - - // generate timestamp or delta - // see http://nodejs.org/api/process.html#process_process_hrtime - function hrtime$1(previousTimestamp){ - var clocktime = performanceNow$1.call(performance$1)*1e-3; - var seconds = Math.floor(clocktime); - var nanoseconds = Math.floor((clocktime%1)*1e9); - if (previousTimestamp) { - seconds = seconds - previousTimestamp[0]; - nanoseconds = nanoseconds - previousTimestamp[1]; - if (nanoseconds<0) { - seconds--; - nanoseconds += 1e9; - } - } - return [seconds,nanoseconds] - } - - var startTime$1 = new Date(); - function uptime$1() { - var currentTime = new Date(); - var dif = currentTime - startTime$1; - return dif / 1000; - } - - var process = { - nextTick: nextTick$1, - title: title$1, - browser: browser$4, - env: env$1, - argv: argv$1, - version: version$2, - versions: versions$1, - on: on$1, - addListener: addListener$1, - once: once$1, - off: off$1, - removeListener: removeListener$1, - removeAllListeners: removeAllListeners$1, - emit: emit$1, - binding: binding$1, - cwd: cwd$1, - chdir: chdir$1, - umask: umask$1, - hrtime: hrtime$1, - platform: platform$1, - release: release$1, - config: config$1, - uptime: uptime$1 - }; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {}; - - function getAugmentedNamespace(n) { - if (n.__esModule) return n; - var a = Object.defineProperty({}, '__esModule', {value: true}); - Object.keys(n).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(n, k); - Object.defineProperty(a, k, d.get ? d : { - enumerable: true, - get: function () { - return n[k]; - } - }); - }); - return a; - } - - function commonjsRequire (path) { - throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); - } - - var domain; - - // This constructor is used to store event handlers. Instantiating this is - // faster than explicitly calling `Object.create(null)` to get a "clean" empty - // object (tested with v8 v4.9). - function EventHandlers() {} - EventHandlers.prototype = Object.create(null); - - function EventEmitter$2() { - EventEmitter$2.init.call(this); - } - - // nodejs oddity - // require('events') === require('events').EventEmitter - EventEmitter$2.EventEmitter = EventEmitter$2; - - EventEmitter$2.usingDomains = false; - - EventEmitter$2.prototype.domain = undefined; - EventEmitter$2.prototype._events = undefined; - EventEmitter$2.prototype._maxListeners = undefined; - - // By default EventEmitters will print a warning if more than 10 listeners are - // added to it. This is a useful default which helps finding memory leaks. - EventEmitter$2.defaultMaxListeners = 10; - - EventEmitter$2.init = function() { - this.domain = null; - if (EventEmitter$2.usingDomains) { - // if there is an active domain, then attach to it. - if (domain.active ) ; - } - - if (!this._events || this._events === Object.getPrototypeOf(this)._events) { - this._events = new EventHandlers(); - this._eventsCount = 0; - } - - this._maxListeners = this._maxListeners || undefined; - }; - - // Obviously not all Emitters should be limited to 10. This function allows - // that to be increased. Set to zero for unlimited. - EventEmitter$2.prototype.setMaxListeners = function setMaxListeners(n) { - if (typeof n !== 'number' || n < 0 || isNaN(n)) - throw new TypeError('"n" argument must be a positive number'); - this._maxListeners = n; - return this; - }; - - function $getMaxListeners(that) { - if (that._maxListeners === undefined) - return EventEmitter$2.defaultMaxListeners; - return that._maxListeners; - } - - EventEmitter$2.prototype.getMaxListeners = function getMaxListeners() { - return $getMaxListeners(this); - }; - - // These standalone emit* functions are used to optimize calling of event - // handlers for fast cases because emit() itself often has a variable number of - // arguments and can be deoptimized because of that. These functions always have - // the same number of arguments and thus do not get deoptimized, so the code - // inside them can execute faster. - function emitNone(handler, isFn, self) { - if (isFn) - handler.call(self); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self); - } - } - function emitOne(handler, isFn, self, arg1) { - if (isFn) - handler.call(self, arg1); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1); - } - } - function emitTwo(handler, isFn, self, arg1, arg2) { - if (isFn) - handler.call(self, arg1, arg2); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1, arg2); - } - } - function emitThree(handler, isFn, self, arg1, arg2, arg3) { - if (isFn) - handler.call(self, arg1, arg2, arg3); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1, arg2, arg3); - } - } - - function emitMany(handler, isFn, self, args) { - if (isFn) - handler.apply(self, args); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].apply(self, args); - } - } - - EventEmitter$2.prototype.emit = function emit(type) { - var er, handler, len, args, i, events, domain; - var doError = (type === 'error'); - - events = this._events; - if (events) - doError = (doError && events.error == null); - else if (!doError) - return false; - - domain = this.domain; - - // If there is no 'error' event listener then throw. - if (doError) { - er = arguments[1]; - if (domain) { - if (!er) - er = new Error('Uncaught, unspecified "error" event'); - er.domainEmitter = this; - er.domain = domain; - er.domainThrown = false; - domain.emit('error', er); - } else if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } - return false; - } - - handler = events[type]; - - if (!handler) - return false; - - var isFn = typeof handler === 'function'; - len = arguments.length; - switch (len) { - // fast cases - case 1: - emitNone(handler, isFn, this); - break; - case 2: - emitOne(handler, isFn, this, arguments[1]); - break; - case 3: - emitTwo(handler, isFn, this, arguments[1], arguments[2]); - break; - case 4: - emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]); - break; - // slower - default: - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - emitMany(handler, isFn, this, args); - } - - return true; - }; - - function _addListener(target, type, listener, prepend) { - var m; - var events; - var existing; - - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - - events = target._events; - if (!events) { - events = target._events = new EventHandlers(); - target._eventsCount = 0; - } else { - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (events.newListener) { - target.emit('newListener', type, - listener.listener ? listener.listener : listener); - - // Re-assign `events` because a newListener handler could have caused the - // this._events to be assigned to a new object - events = target._events; - } - existing = events[type]; - } - - if (!existing) { - // Optimize the case of one listener. Don't need the extra array object. - existing = events[type] = listener; - ++target._eventsCount; - } else { - if (typeof existing === 'function') { - // Adding the second element, need to change to array. - existing = events[type] = prepend ? [listener, existing] : - [existing, listener]; - } else { - // If we've already got an array, just append. - if (prepend) { - existing.unshift(listener); - } else { - existing.push(listener); - } - } - - // Check for listener leak - if (!existing.warned) { - m = $getMaxListeners(target); - if (m && m > 0 && existing.length > m) { - existing.warned = true; - var w = new Error('Possible EventEmitter memory leak detected. ' + - existing.length + ' ' + type + ' listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit'); - w.name = 'MaxListenersExceededWarning'; - w.emitter = target; - w.type = type; - w.count = existing.length; - emitWarning$1(w); - } - } - } - - return target; - } - function emitWarning$1(e) { - typeof console.warn === 'function' ? console.warn(e) : console.log(e); - } - EventEmitter$2.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false); - }; - - EventEmitter$2.prototype.on = EventEmitter$2.prototype.addListener; - - EventEmitter$2.prototype.prependListener = - function prependListener(type, listener) { - return _addListener(this, type, listener, true); - }; - - function _onceWrap(target, type, listener) { - var fired = false; - function g() { - target.removeListener(type, g); - if (!fired) { - fired = true; - listener.apply(target, arguments); - } - } - g.listener = listener; - return g; - } - - EventEmitter$2.prototype.once = function once(type, listener) { - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - this.on(type, _onceWrap(this, type, listener)); - return this; - }; - - EventEmitter$2.prototype.prependOnceListener = - function prependOnceListener(type, listener) { - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - this.prependListener(type, _onceWrap(this, type, listener)); - return this; - }; - - // emits a 'removeListener' event iff the listener was removed - EventEmitter$2.prototype.removeListener = - function removeListener(type, listener) { - var list, events, position, i, originalListener; - - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - - events = this._events; - if (!events) - return this; - - list = events[type]; - if (!list) - return this; - - if (list === listener || (list.listener && list.listener === listener)) { - if (--this._eventsCount === 0) - this._events = new EventHandlers(); - else { - delete events[type]; - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener); - } - } else if (typeof list !== 'function') { - position = -1; - - for (i = list.length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - originalListener = list[i].listener; - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list[0] = undefined; - if (--this._eventsCount === 0) { - this._events = new EventHandlers(); - return this; - } else { - delete events[type]; - } - } else { - spliceOne(list, position); - } - - if (events.removeListener) - this.emit('removeListener', type, originalListener || listener); - } - - return this; - }; - - // Alias for removeListener added in NodeJS 10.0 - // https://nodejs.org/api/events.html#events_emitter_off_eventname_listener - EventEmitter$2.prototype.off = function(type, listener){ - return this.removeListener(type, listener); - }; - - EventEmitter$2.prototype.removeAllListeners = - function removeAllListeners(type) { - var listeners, events; - - events = this._events; - if (!events) - return this; - - // not listening for removeListener, no need to emit - if (!events.removeListener) { - if (arguments.length === 0) { - this._events = new EventHandlers(); - this._eventsCount = 0; - } else if (events[type]) { - if (--this._eventsCount === 0) - this._events = new EventHandlers(); - else - delete events[type]; - } - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - var keys = Object.keys(events); - for (var i = 0, key; i < keys.length; ++i) { - key = keys[i]; - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = new EventHandlers(); - this._eventsCount = 0; - return this; - } - - listeners = events[type]; - - if (typeof listeners === 'function') { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - do { - this.removeListener(type, listeners[listeners.length - 1]); - } while (listeners[0]); - } - - return this; - }; - - EventEmitter$2.prototype.listeners = function listeners(type) { - var evlistener; - var ret; - var events = this._events; - - if (!events) - ret = []; - else { - evlistener = events[type]; - if (!evlistener) - ret = []; - else if (typeof evlistener === 'function') - ret = [evlistener.listener || evlistener]; - else - ret = unwrapListeners(evlistener); - } - - return ret; - }; - - EventEmitter$2.listenerCount = function(emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type); - } else { - return listenerCount$1.call(emitter, type); - } - }; - - EventEmitter$2.prototype.listenerCount = listenerCount$1; - function listenerCount$1(type) { - var events = this._events; - - if (events) { - var evlistener = events[type]; - - if (typeof evlistener === 'function') { - return 1; - } else if (evlistener) { - return evlistener.length; - } - } - - return 0; - } - - EventEmitter$2.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; - }; - - // About 1.5x faster than the two-arg version of Array#splice(). - function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) - list[i] = list[k]; - list.pop(); - } - - function arrayClone(arr, i) { - var copy = new Array(i); - while (i--) - copy[i] = arr[i]; - return copy; - } - - function unwrapListeners(arr) { - var ret = new Array(arr.length); - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i]; - } - return ret; - } - - var _polyfillNode_events = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': EventEmitter$2, - EventEmitter: EventEmitter$2 - }); - - var lookup$1 = []; - var revLookup$1 = []; - var Arr$1 = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; - var inited$1 = false; - function init$1 () { - inited$1 = true; - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for (var i = 0, len = code.length; i < len; ++i) { - lookup$1[i] = code[i]; - revLookup$1[code.charCodeAt(i)] = i; - } - - revLookup$1['-'.charCodeAt(0)] = 62; - revLookup$1['_'.charCodeAt(0)] = 63; - } - - function toByteArray$1 (b64) { - if (!inited$1) { - init$1(); - } - var i, j, l, tmp, placeHolders, arr; - var len = b64.length; - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0; - - // base64 is 4/3 + up to two characters of the original data - arr = new Arr$1(len * 3 / 4 - placeHolders); - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len; - - var L = 0; - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (revLookup$1[b64.charCodeAt(i)] << 18) | (revLookup$1[b64.charCodeAt(i + 1)] << 12) | (revLookup$1[b64.charCodeAt(i + 2)] << 6) | revLookup$1[b64.charCodeAt(i + 3)]; - arr[L++] = (tmp >> 16) & 0xFF; - arr[L++] = (tmp >> 8) & 0xFF; - arr[L++] = tmp & 0xFF; - } - - if (placeHolders === 2) { - tmp = (revLookup$1[b64.charCodeAt(i)] << 2) | (revLookup$1[b64.charCodeAt(i + 1)] >> 4); - arr[L++] = tmp & 0xFF; - } else if (placeHolders === 1) { - tmp = (revLookup$1[b64.charCodeAt(i)] << 10) | (revLookup$1[b64.charCodeAt(i + 1)] << 4) | (revLookup$1[b64.charCodeAt(i + 2)] >> 2); - arr[L++] = (tmp >> 8) & 0xFF; - arr[L++] = tmp & 0xFF; - } - - return arr - } - - function tripletToBase64$1 (num) { - return lookup$1[num >> 18 & 0x3F] + lookup$1[num >> 12 & 0x3F] + lookup$1[num >> 6 & 0x3F] + lookup$1[num & 0x3F] - } - - function encodeChunk$1 (uint8, start, end) { - var tmp; - var output = []; - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]); - output.push(tripletToBase64$1(tmp)); - } - return output.join('') - } - - function fromByteArray$1 (uint8) { - if (!inited$1) { - init$1(); - } - var tmp; - var len = uint8.length; - var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes - var output = ''; - var parts = []; - var maxChunkLength = 16383; // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk$1(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))); - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1]; - output += lookup$1[tmp >> 2]; - output += lookup$1[(tmp << 4) & 0x3F]; - output += '=='; - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]); - output += lookup$1[tmp >> 10]; - output += lookup$1[(tmp >> 4) & 0x3F]; - output += lookup$1[(tmp << 2) & 0x3F]; - output += '='; - } - - parts.push(output); - - return parts.join('') - } - - function read$1 (buffer, offset, isLE, mLen, nBytes) { - var e, m; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = -7; - var i = isLE ? (nBytes - 1) : 0; - var d = isLE ? -1 : 1; - var s = buffer[offset + i]; - - i += d; - - e = s & ((1 << (-nBits)) - 1); - s >>= (-nBits); - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1); - e >>= (-nBits); - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - function write$1 (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0); - var i = isLE ? 0 : (nBytes - 1); - var d = isLE ? 1 : -1; - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128; - } - - var toString$2 = {}.toString; - - var isArray$2 = Array.isArray || function (arr) { - return toString$2.call(arr) == '[object Array]'; - }; - - /*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - - var INSPECT_MAX_BYTES$1 = 50; - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ - Buffer$1.TYPED_ARRAY_SUPPORT = global$2.TYPED_ARRAY_SUPPORT !== undefined - ? global$2.TYPED_ARRAY_SUPPORT - : true; - - function kMaxLength$1 () { - return Buffer$1.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff - } - - function createBuffer$1 (that, length) { - if (kMaxLength$1() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length); - that.__proto__ = Buffer$1.prototype; - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer$1(length); - } - that.length = length; - } - - return that - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer$1 (arg, encodingOrOffset, length) { - if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) { - return new Buffer$1(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe$1(this, arg) - } - return from$1(this, arg, encodingOrOffset, length) - } - - Buffer$1.poolSize = 8192; // not used by this implementation - - // TODO: Legacy, not needed anymore. Remove in next major version. - Buffer$1._augment = function (arr) { - arr.__proto__ = Buffer$1.prototype; - return arr - }; - - function from$1 (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer$1(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString$1(that, value, encodingOrOffset) - } - - return fromObject$1(that, value) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer$1.from = function (value, encodingOrOffset, length) { - return from$1(null, value, encodingOrOffset, length) - }; - - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - Buffer$1.prototype.__proto__ = Uint8Array.prototype; - Buffer$1.__proto__ = Uint8Array; - } - - function assertSize$1 (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - } - - function alloc$1 (that, size, fill, encoding) { - assertSize$1(size); - if (size <= 0) { - return createBuffer$1(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer$1(that, size).fill(fill, encoding) - : createBuffer$1(that, size).fill(fill) - } - return createBuffer$1(that, size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer$1.alloc = function (size, fill, encoding) { - return alloc$1(null, size, fill, encoding) - }; - - function allocUnsafe$1 (that, size) { - assertSize$1(size); - that = createBuffer$1(that, size < 0 ? 0 : checked$1(size) | 0); - if (!Buffer$1.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0; - } - } - return that - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer$1.allocUnsafe = function (size) { - return allocUnsafe$1(null, size) - }; - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer$1.allocUnsafeSlow = function (size) { - return allocUnsafe$1(null, size) - }; - - function fromString$1 (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8'; - } - - if (!Buffer$1.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength$1(string, encoding) | 0; - that = createBuffer$1(that, length); - - var actual = that.write(string, encoding); - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual); - } - - return that - } - - function fromArrayLike$1 (that, array) { - var length = array.length < 0 ? 0 : checked$1(array.length) | 0; - that = createBuffer$1(that, length); - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255; - } - return that - } - - function fromArrayBuffer$1 (that, array, byteOffset, length) { - array.byteLength; // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array); - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset); - } else { - array = new Uint8Array(array, byteOffset, length); - } - - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array; - that.__proto__ = Buffer$1.prototype; - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike$1(that, array); - } - return that - } - - function fromObject$1 (that, obj) { - if (internalIsBuffer$1(obj)) { - var len = checked$1(obj.length) | 0; - that = createBuffer$1(that, len); - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len); - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan$1(obj.length)) { - return createBuffer$1(that, 0) - } - return fromArrayLike$1(that, obj) - } - - if (obj.type === 'Buffer' && isArray$2(obj.data)) { - return fromArrayLike$1(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') - } - - function checked$1 (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength$1()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength$1().toString(16) + ' bytes') - } - return length | 0 - } - Buffer$1.isBuffer = isBuffer$2; - function internalIsBuffer$1 (b) { - return !!(b != null && b._isBuffer) - } - - Buffer$1.compare = function compare (a, b) { - if (!internalIsBuffer$1(a) || !internalIsBuffer$1(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length; - var y = b.length; - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i]; - y = b[i]; - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - }; - - Buffer$1.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - }; - - Buffer$1.concat = function concat (list, length) { - if (!isArray$2(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer$1.alloc(0) - } - - var i; - if (length === undefined) { - length = 0; - for (i = 0; i < list.length; ++i) { - length += list[i].length; - } - } - - var buffer = Buffer$1.allocUnsafe(length); - var pos = 0; - for (i = 0; i < list.length; ++i) { - var buf = list[i]; - if (!internalIsBuffer$1(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos); - pos += buf.length; - } - return buffer - }; - - function byteLength$1 (string, encoding) { - if (internalIsBuffer$1(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string; - } - - var len = string.length; - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false; - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes$1(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes$1(string).length - default: - if (loweredCase) return utf8ToBytes$1(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase(); - loweredCase = true; - } - } - } - Buffer$1.byteLength = byteLength$1; - - function slowToString$1 (encoding, start, end) { - var loweredCase = false; - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0; - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length; - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0; - start >>>= 0; - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8'; - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice$1(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice$1(this, start, end) - - case 'ascii': - return asciiSlice$1(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice$1(this, start, end) - - case 'base64': - return base64Slice$1(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice$1(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase(); - loweredCase = true; - } - } - } - - // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect - // Buffer instances. - Buffer$1.prototype._isBuffer = true; - - function swap$1 (b, n, m) { - var i = b[n]; - b[n] = b[m]; - b[m] = i; - } - - Buffer$1.prototype.swap16 = function swap16 () { - var len = this.length; - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap$1(this, i, i + 1); - } - return this - }; - - Buffer$1.prototype.swap32 = function swap32 () { - var len = this.length; - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap$1(this, i, i + 3); - swap$1(this, i + 1, i + 2); - } - return this - }; - - Buffer$1.prototype.swap64 = function swap64 () { - var len = this.length; - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap$1(this, i, i + 7); - swap$1(this, i + 1, i + 6); - swap$1(this, i + 2, i + 5); - swap$1(this, i + 3, i + 4); - } - return this - }; - - Buffer$1.prototype.toString = function toString () { - var length = this.length | 0; - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice$1(this, 0, length) - return slowToString$1.apply(this, arguments) - }; - - Buffer$1.prototype.equals = function equals (b) { - if (!internalIsBuffer$1(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer$1.compare(this, b) === 0 - }; - - Buffer$1.prototype.inspect = function inspect () { - var str = ''; - var max = INSPECT_MAX_BYTES$1; - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' '); - if (this.length > max) str += ' ... '; - } - return '' - }; - - Buffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!internalIsBuffer$1(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0; - } - if (end === undefined) { - end = target ? target.length : 0; - } - if (thisStart === undefined) { - thisStart = 0; - } - if (thisEnd === undefined) { - thisEnd = this.length; - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0; - end >>>= 0; - thisStart >>>= 0; - thisEnd >>>= 0; - - if (this === target) return 0 - - var x = thisEnd - thisStart; - var y = end - start; - var len = Math.min(x, y); - - var thisCopy = this.slice(thisStart, thisEnd); - var targetCopy = target.slice(start, end); - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i]; - y = targetCopy[i]; - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - }; - - // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, - // OR the last index of `val` in `buffer` at offset <= `byteOffset`. - // - // Arguments: - // - buffer - a Buffer to search - // - val - a string, Buffer, or number - // - byteOffset - an index into `buffer`; will be clamped to an int32 - // - encoding - an optional encoding, relevant is val is a string - // - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf$1 (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset; - byteOffset = 0; - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff; - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000; - } - byteOffset = +byteOffset; // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1); - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset; - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1; - } else if (byteOffset < 0) { - if (dir) byteOffset = 0; - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer$1.from(val, encoding); - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (internalIsBuffer$1(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf$1(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF; // Search for a byte value [0-255] - if (Buffer$1.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf$1(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf$1 (arr, val, byteOffset, encoding, dir) { - var indexSize = 1; - var arrLength = arr.length; - var valLength = val.length; - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase(); - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2; - arrLength /= 2; - valLength /= 2; - byteOffset /= 2; - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i; - if (dir) { - var foundIndex = -1; - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i; - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex; - foundIndex = -1; - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; - for (i = byteOffset; i >= 0; i--) { - var found = true; - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false; - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer$1.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - }; - - Buffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf$1(this, val, byteOffset, encoding, true) - }; - - Buffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf$1(this, val, byteOffset, encoding, false) - }; - - function hexWrite$1 (buf, string, offset, length) { - offset = Number(offset) || 0; - var remaining = buf.length - offset; - if (!length) { - length = remaining; - } else { - length = Number(length); - if (length > remaining) { - length = remaining; - } - } - - // must be an even number of digits - var strLen = string.length; - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2; - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16); - if (isNaN(parsed)) return i - buf[offset + i] = parsed; - } - return i - } - - function utf8Write$1 (buf, string, offset, length) { - return blitBuffer$1(utf8ToBytes$1(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite$1 (buf, string, offset, length) { - return blitBuffer$1(asciiToBytes$1(string), buf, offset, length) - } - - function latin1Write$1 (buf, string, offset, length) { - return asciiWrite$1(buf, string, offset, length) - } - - function base64Write$1 (buf, string, offset, length) { - return blitBuffer$1(base64ToBytes$1(string), buf, offset, length) - } - - function ucs2Write$1 (buf, string, offset, length) { - return blitBuffer$1(utf16leToBytes$1(string, buf.length - offset), buf, offset, length) - } - - Buffer$1.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8'; - length = this.length; - offset = 0; - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset; - length = this.length; - offset = 0; - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0; - if (isFinite(length)) { - length = length | 0; - if (encoding === undefined) encoding = 'utf8'; - } else { - encoding = length; - length = undefined; - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset; - if (length === undefined || length > remaining) length = remaining; - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8'; - - var loweredCase = false; - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite$1(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write$1(this, string, offset, length) - - case 'ascii': - return asciiWrite$1(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write$1(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write$1(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write$1(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase(); - loweredCase = true; - } - } - }; - - Buffer$1.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - }; - - function base64Slice$1 (buf, start, end) { - if (start === 0 && end === buf.length) { - return fromByteArray$1(buf) - } else { - return fromByteArray$1(buf.slice(start, end)) - } - } - - function utf8Slice$1 (buf, start, end) { - end = Math.min(buf.length, end); - var res = []; - - var i = start; - while (i < end) { - var firstByte = buf[i]; - var codePoint = null; - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1; - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint; - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte; - } - break - case 2: - secondByte = buf[i + 1]; - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F); - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint; - } - } - break - case 3: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F); - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint; - } - } - break - case 4: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - fourthByte = buf[i + 3]; - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F); - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint; - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD; - bytesPerSequence = 1; - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000; - res.push(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - - res.push(codePoint); - i += bytesPerSequence; - } - - return decodeCodePointsArray$1(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH$1 = 0x1000; - - function decodeCodePointsArray$1 (codePoints) { - var len = codePoints.length; - if (len <= MAX_ARGUMENTS_LENGTH$1) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = ''; - var i = 0; - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH$1) - ); - } - return res - } - - function asciiSlice$1 (buf, start, end) { - var ret = ''; - end = Math.min(buf.length, end); - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F); - } - return ret - } - - function latin1Slice$1 (buf, start, end) { - var ret = ''; - end = Math.min(buf.length, end); - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]); - } - return ret - } - - function hexSlice$1 (buf, start, end) { - var len = buf.length; - - if (!start || start < 0) start = 0; - if (!end || end < 0 || end > len) end = len; - - var out = ''; - for (var i = start; i < end; ++i) { - out += toHex$1(buf[i]); - } - return out - } - - function utf16leSlice$1 (buf, start, end) { - var bytes = buf.slice(start, end); - var res = ''; - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); - } - return res - } - - Buffer$1.prototype.slice = function slice (start, end) { - var len = this.length; - start = ~~start; - end = end === undefined ? len : ~~end; - - if (start < 0) { - start += len; - if (start < 0) start = 0; - } else if (start > len) { - start = len; - } - - if (end < 0) { - end += len; - if (end < 0) end = 0; - } else if (end > len) { - end = len; - } - - if (end < start) end = start; - - var newBuf; - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end); - newBuf.__proto__ = Buffer$1.prototype; - } else { - var sliceLen = end - start; - newBuf = new Buffer$1(sliceLen, undefined); - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start]; - } - } - - return newBuf - }; - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset$1 (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset$1(offset, byteLength, this.length); - - var val = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul; - } - - return val - }; - - Buffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - checkOffset$1(offset, byteLength, this.length); - } - - var val = this[offset + --byteLength]; - var mul = 1; - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul; - } - - return val - }; - - Buffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 1, this.length); - return this[offset] - }; - - Buffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 2, this.length); - return this[offset] | (this[offset + 1] << 8) - }; - - Buffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 2, this.length); - return (this[offset] << 8) | this[offset + 1] - }; - - Buffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 4, this.length); - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - }; - - Buffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 4, this.length); - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - }; - - Buffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset$1(offset, byteLength, this.length); - - var val = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul; - } - mul *= 0x80; - - if (val >= mul) val -= Math.pow(2, 8 * byteLength); - - return val - }; - - Buffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset$1(offset, byteLength, this.length); - - var i = byteLength; - var mul = 1; - var val = this[offset + --i]; - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul; - } - mul *= 0x80; - - if (val >= mul) val -= Math.pow(2, 8 * byteLength); - - return val - }; - - Buffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 1, this.length); - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - }; - - Buffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 2, this.length); - var val = this[offset] | (this[offset + 1] << 8); - return (val & 0x8000) ? val | 0xFFFF0000 : val - }; - - Buffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 2, this.length); - var val = this[offset + 1] | (this[offset] << 8); - return (val & 0x8000) ? val | 0xFFFF0000 : val - }; - - Buffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 4, this.length); - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - }; - - Buffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 4, this.length); - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - }; - - Buffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 4, this.length); - return read$1(this, offset, true, 23, 4) - }; - - Buffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 4, this.length); - return read$1(this, offset, false, 23, 4) - }; - - Buffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 8, this.length); - return read$1(this, offset, true, 52, 8) - }; - - Buffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset$1(offset, 8, this.length); - return read$1(this, offset, false, 52, 8) - }; - - function checkInt$1 (buf, value, offset, ext, max, min) { - if (!internalIsBuffer$1(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1; - checkInt$1(this, value, offset, byteLength, maxBytes, 0); - } - - var mul = 1; - var i = 0; - this[offset] = value & 0xFF; - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1; - checkInt$1(this, value, offset, byteLength, maxBytes, 0); - } - - var i = byteLength - 1; - var mul = 1; - this[offset + i] = value & 0xFF; - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 1, 0xff, 0); - if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value); - this[offset] = (value & 0xff); - return offset + 1 - }; - - function objectWriteUInt16$1 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8; - } - } - - Buffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 2, 0xffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - } else { - objectWriteUInt16$1(this, value, offset, true); - } - return offset + 2 - }; - - Buffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 2, 0xffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8); - this[offset + 1] = (value & 0xff); - } else { - objectWriteUInt16$1(this, value, offset, false); - } - return offset + 2 - }; - - function objectWriteUInt32$1 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff; - } - } - - Buffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 4, 0xffffffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24); - this[offset + 2] = (value >>> 16); - this[offset + 1] = (value >>> 8); - this[offset] = (value & 0xff); - } else { - objectWriteUInt32$1(this, value, offset, true); - } - return offset + 4 - }; - - Buffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 4, 0xffffffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24); - this[offset + 1] = (value >>> 16); - this[offset + 2] = (value >>> 8); - this[offset + 3] = (value & 0xff); - } else { - objectWriteUInt32$1(this, value, offset, false); - } - return offset + 4 - }; - - Buffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1); - - checkInt$1(this, value, offset, byteLength, limit - 1, -limit); - } - - var i = 0; - var mul = 1; - var sub = 0; - this[offset] = value & 0xFF; - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1; - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1); - - checkInt$1(this, value, offset, byteLength, limit - 1, -limit); - } - - var i = byteLength - 1; - var mul = 1; - var sub = 0; - this[offset + i] = value & 0xFF; - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1; - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 1, 0x7f, -0x80); - if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value); - if (value < 0) value = 0xff + value + 1; - this[offset] = (value & 0xff); - return offset + 1 - }; - - Buffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 2, 0x7fff, -0x8000); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - } else { - objectWriteUInt16$1(this, value, offset, true); - } - return offset + 2 - }; - - Buffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 2, 0x7fff, -0x8000); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8); - this[offset + 1] = (value & 0xff); - } else { - objectWriteUInt16$1(this, value, offset, false); - } - return offset + 2 - }; - - Buffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 4, 0x7fffffff, -0x80000000); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - this[offset + 2] = (value >>> 16); - this[offset + 3] = (value >>> 24); - } else { - objectWriteUInt32$1(this, value, offset, true); - } - return offset + 4 - }; - - Buffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt$1(this, value, offset, 4, 0x7fffffff, -0x80000000); - if (value < 0) value = 0xffffffff + value + 1; - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24); - this[offset + 1] = (value >>> 16); - this[offset + 2] = (value >>> 8); - this[offset + 3] = (value & 0xff); - } else { - objectWriteUInt32$1(this, value, offset, false); - } - return offset + 4 - }; - - function checkIEEE754$1 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat$1 (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754$1(buf, value, offset, 4); - } - write$1(buf, value, offset, littleEndian, 23, 4); - return offset + 4 - } - - Buffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat$1(this, value, offset, true, noAssert) - }; - - Buffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat$1(this, value, offset, false, noAssert) - }; - - function writeDouble$1 (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754$1(buf, value, offset, 8); - } - write$1(buf, value, offset, littleEndian, 52, 8); - return offset + 8 - } - - Buffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble$1(this, value, offset, true, noAssert) - }; - - Buffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble$1(this, value, offset, false, noAssert) - }; - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer$1.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0; - if (!end && end !== 0) end = this.length; - if (targetStart >= target.length) targetStart = target.length; - if (!targetStart) targetStart = 0; - if (end > 0 && end < start) end = start; - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length; - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start; - } - - var len = end - start; - var i; - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start]; - } - } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start]; - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ); - } - - return len - }; - - // Usage: - // buffer.fill(number[, offset[, end]]) - // buffer.fill(buffer[, offset[, end]]) - // buffer.fill(string[, offset[, end]][, encoding]) - Buffer$1.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start; - start = 0; - end = this.length; - } else if (typeof end === 'string') { - encoding = end; - end = this.length; - } - if (val.length === 1) { - var code = val.charCodeAt(0); - if (code < 256) { - val = code; - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255; - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0; - end = end === undefined ? this.length : end >>> 0; - - if (!val) val = 0; - - var i; - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val; - } - } else { - var bytes = internalIsBuffer$1(val) - ? val - : utf8ToBytes$1(new Buffer$1(val, encoding).toString()); - var len = bytes.length; - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len]; - } - } - - return this - }; - - // HELPER FUNCTIONS - // ================ - - var INVALID_BASE64_RE$1 = /[^+\/0-9A-Za-z-_]/g; - - function base64clean$1 (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim$1(str).replace(INVALID_BASE64_RE$1, ''); - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '='; - } - return str - } - - function stringtrim$1 (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') - } - - function toHex$1 (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes$1 (string, units) { - units = units || Infinity; - var codePoint; - var length = string.length; - var leadSurrogate = null; - var bytes = []; - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i); - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - continue - } - - // valid lead - leadSurrogate = codePoint; - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - leadSurrogate = codePoint; - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - } - - leadSurrogate = null; - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint); - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ); - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ); - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ); - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes$1 (str) { - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF); - } - return byteArray - } - - function utf16leToBytes$1 (str, units) { - var c, hi, lo; - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i); - hi = c >> 8; - lo = c % 256; - byteArray.push(lo); - byteArray.push(hi); - } - - return byteArray - } - - - function base64ToBytes$1 (str) { - return toByteArray$1(base64clean$1(str)) - } - - function blitBuffer$1 (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i]; - } - return i - } - - function isnan$1 (val) { - return val !== val // eslint-disable-line no-self-compare - } - - - // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence - // The _isBuffer check is for Safari 5-7 support, because it's missing - // Object.prototype.constructor. Remove this eventually - function isBuffer$2(obj) { - return obj != null && (!!obj._isBuffer || isFastBuffer$1(obj) || isSlowBuffer$1(obj)) - } - - function isFastBuffer$1 (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) - } - - // For Node v0.10 support. Remove this eventually. - function isSlowBuffer$1 (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer$1(obj.slice(0, 0)) - } - - // shim for using process in browser - // based off https://github.com/defunctzombie/node-process/blob/master/browser.js - - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } - function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); - } - var cachedSetTimeout = defaultSetTimout; - var cachedClearTimeout = defaultClearTimeout; - if (typeof global$2.setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } - if (typeof global$2.clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } - - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - - } - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - - } - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; - - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } - } - - function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); - } - function nextTick(fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - } - // v8 likes predictible objects - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - var title = 'browser'; - var platform = 'browser'; - var browser$3 = true; - var env = {}; - var argv = []; - var version$1 = ''; // empty string to avoid regexp issues - var versions = {}; - var release = {}; - var config = {}; - - function noop() {} - - var on = noop; - var addListener = noop; - var once = noop; - var off = noop; - var removeListener = noop; - var removeAllListeners = noop; - var emit = noop; - - function binding(name) { - throw new Error('process.binding is not supported'); - } - - function cwd () { return '/' } - function chdir (dir) { - throw new Error('process.chdir is not supported'); - }function umask() { return 0; } - - // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js - var performance = global$2.performance || {}; - var performanceNow = - performance.now || - performance.mozNow || - performance.msNow || - performance.oNow || - performance.webkitNow || - function(){ return (new Date()).getTime() }; - - // generate timestamp or delta - // see http://nodejs.org/api/process.html#process_process_hrtime - function hrtime(previousTimestamp){ - var clocktime = performanceNow.call(performance)*1e-3; - var seconds = Math.floor(clocktime); - var nanoseconds = Math.floor((clocktime%1)*1e9); - if (previousTimestamp) { - seconds = seconds - previousTimestamp[0]; - nanoseconds = nanoseconds - previousTimestamp[1]; - if (nanoseconds<0) { - seconds--; - nanoseconds += 1e9; - } - } - return [seconds,nanoseconds] - } - - var startTime = new Date(); - function uptime() { - var currentTime = new Date(); - var dif = currentTime - startTime; - return dif / 1000; - } - - var browser$1$1 = { - nextTick: nextTick, - title: title, - browser: browser$3, - env: env, - argv: argv, - version: version$1, - versions: versions, - on: on, - addListener: addListener, - once: once, - off: off, - removeListener: removeListener, - removeAllListeners: removeAllListeners, - emit: emit, - binding: binding, - cwd: cwd, - chdir: chdir, - umask: umask, - hrtime: hrtime, - platform: platform, - release: release, - config: config, - uptime: uptime - }; - - var inherits$2; - if (typeof Object.create === 'function'){ - inherits$2 = function inherits(ctor, superCtor) { - // implementation from standard node.js 'util' module - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - inherits$2 = function inherits(ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function () {}; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - }; - } - var inherits$3 = inherits$2; - - var formatRegExp = /%[sdj%]/g; - function format$1(f) { - if (!isString$1(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; - } - - // Mark that a method should not be used. - // Returns a modified function which warns once by default. - // If --no-deprecation is set, then it is a no-op. - function deprecate$1(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global$2.process)) { - return function() { - return deprecate$1(fn, msg).apply(this, arguments); - }; - } - - if (browser$1$1.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (browser$1$1.throwDeprecation) { - throw new Error(msg); - } else if (browser$1$1.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; - } - - var debugs = {}; - var debugEnviron; - function debuglog(set) { - if (isUndefined(debugEnviron)) - debugEnviron = browser$1$1.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = 0; - debugs[set] = function() { - var msg = format$1.apply(null, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; - } - - /** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ - /* legacy: obj, showHidden, depth, colors*/ - function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - _extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); - } - - // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics - inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] - }; - - // Don't use 'blue' not visible on cmd.exe - inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' - }; - - - function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } - } - - - function stylizeNoColor(str, styleType) { - return str; - } - - - function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; - } - - - function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString$1(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError$1(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError$1(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray$1(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError$1(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); - } - - - function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString$1(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); - } - - - function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; - } - - - function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; - } - - - function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; - } - - - function reduceToSingleString(output, base, braces) { - var length = output.reduce(function(prev, cur) { - if (cur.indexOf('\n') >= 0) ; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } - - - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray$1(ar) { - return Array.isArray(ar); - } - - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - - function isNull(arg) { - return arg === null; - } - - function isNullOrUndefined(arg) { - return arg == null; - } - - function isNumber(arg) { - return typeof arg === 'number'; - } - - function isString$1(arg) { - return typeof arg === 'string'; - } - - function isSymbol(arg) { - return typeof arg === 'symbol'; - } - - function isUndefined(arg) { - return arg === void 0; - } - - function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; - } - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - - function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; - } - - function isError$1(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); - } - - function isFunction(arg) { - return typeof arg === 'function'; - } - - function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - } - - function isBuffer$1(maybeBuf) { - return Buffer$1.isBuffer(maybeBuf); - } - - function objectToString(o) { - return Object.prototype.toString.call(o); - } - - - function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); - } - - - var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - - // 26 Feb 16:19:34 - function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); - } - - - // log is just a thin wrapper to console.log that prepends a timestamp - function log() { - console.log('%s - %s', timestamp(), format$1.apply(null, arguments)); - } - - function _extend(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; - } - function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); - } - - var _polyfillNode_util = { - inherits: inherits$3, - _extend: _extend, - log: log, - isBuffer: isBuffer$1, - isPrimitive: isPrimitive, - isFunction: isFunction, - isError: isError$1, - isDate: isDate, - isObject: isObject, - isRegExp: isRegExp, - isUndefined: isUndefined, - isSymbol: isSymbol, - isString: isString$1, - isNumber: isNumber, - isNullOrUndefined: isNullOrUndefined, - isNull: isNull, - isBoolean: isBoolean, - isArray: isArray$1, - inspect: inspect, - deprecate: deprecate$1, - format: format$1, - debuglog: debuglog - }; - - var _polyfillNode_util$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - format: format$1, - deprecate: deprecate$1, - debuglog: debuglog, - inspect: inspect, - isArray: isArray$1, - isBoolean: isBoolean, - isNull: isNull, - isNullOrUndefined: isNullOrUndefined, - isNumber: isNumber, - isString: isString$1, - isSymbol: isSymbol, - isUndefined: isUndefined, - isRegExp: isRegExp, - isObject: isObject, - isDate: isDate, - isError: isError$1, - isFunction: isFunction, - isPrimitive: isPrimitive, - isBuffer: isBuffer$1, - log: log, - inherits: inherits$3, - _extend: _extend, - 'default': _polyfillNode_util - }); - - function BufferList() { - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function (v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function (v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function () { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function () { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function (s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function (n) { - if (this.length === 0) return Buffer$1.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer$1.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - p.data.copy(ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - - // Copyright Joyent, Inc. and other Node contributors. - var isBufferEncoding = Buffer$1.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - }; - - - function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } - } - - // StringDecoder provides an interface for efficiently splitting a series of - // buffers into a series of JS strings without breaking apart multi-byte - // characters. CESU-8 is handled as part of the UTF-8 encoding. - // - // @TODO Handling all encodings inside a single object makes it very difficult - // to reason about this code, so it should be split up in the future. - // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code - // points as used by CESU-8. - function StringDecoder(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer$1(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; - } - - // write decodes the given buffer and returns it as JS string that is - // guaranteed to not contain any partial multi-byte characters. Any partial - // character found at the end of the buffer is buffered up, and will be - // returned when calling write again with the remaining bytes. - // - // Note: Converting a Buffer containing an orphan surrogate to a String - // currently works, but converting a String to a Buffer (via `new Buffer`, or - // Buffer#write) will replace incomplete surrogates with the unicode - // replacement character. See https://codereview.chromium.org/121173009/ . - StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; - }; - - // detectIncompleteChar determines if there is an incomplete UTF-8 character at - // the end of the given buffer. If so, it sets this.charLength to the byte - // length that character, and sets this.charReceived to the number of bytes - // that are available for this character. - StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; - }; - - StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; - }; - - function passThroughWrite(buffer) { - return buffer.toString(this.encoding); - } - - function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; - } - - function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; - } - - Readable.ReadableState = ReadableState; - - var debug$2 = debuglog('stream'); - inherits$3(Readable, EventEmitter$2); - - function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) - emitter.on(event, fn); - else if (Array.isArray(emitter._events[event])) - emitter._events[event].unshift(fn); - else - emitter._events[event] = [fn, emitter._events[event]]; - } - } - function listenerCount (emitter, type) { - return emitter.listeners(type).length; - } - function ReadableState(options, stream) { - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } - } - function Readable(options) { - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - EventEmitter$2.call(this); - } - - // Manually shove something into the read() buffer. - // This returns true if the highWaterMark has not been hit yet, - // similar to how Writable.write() returns true if you should - // write() some more. - Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer$1.from(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); - }; - - // Unshift should *always* be something directly out of read() - Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); - }; - - Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; - }; - - function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); - } - - // if it's past the high water mark, we can push in some more. - // Also, if we have no data yet, we can stand some - // more bytes. This is to work around cases where hwm=0, - // such as the repl. Also, if the push() triggered a - // readable event, and the user called read(largeNumber) such that - // needReadable was set, then we ought to push more, so that another - // 'readable' event will be triggered. - function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); - } - - // backwards compatibility. - Readable.prototype.setEncoding = function (enc) { - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; - }; - - // Don't raise the hwm > 8MB - var MAX_HWM = 0x800000; - function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; - } - - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; - } - - // you can override either this method, or the async _read(n) below. - Readable.prototype.read = function (n) { - debug$2('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug$2('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug$2('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug$2('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug$2('reading or ended', doRead); - } else if (doRead) { - debug$2('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; - }; - - function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; - } - - function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); - } - - // Don't emit readable right away in sync mode, because this can trigger - // another read() call => stack overflow. This way, it might trigger - // a nextTick recursion warning, but that's not so bad. - function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug$2('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream); - } - } - - function emitReadable_(stream) { - debug$2('emit readable'); - stream.emit('readable'); - flow(stream); - } - - // at this point, the user has presumably seen the 'readable' event, - // and called read() to consume some data. that may have triggered - // in turn another _read(n) call, in which case reading = true if - // it's in progress. - // However, if we're not ended, or reading, and the length < hwm, - // then go ahead and try to read some more preemptively. - function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - nextTick(maybeReadMore_, stream, state); - } - } - - function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug$2('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; - } - - // abstract method. to be overridden in specific implementation classes. - // call cb(er, data) where data is <= n in length. - // for virtual (non-string, non-buffer) streams, "length" is somewhat - // arbitrary, and perhaps not very meaningful. - Readable.prototype._read = function (n) { - this.emit('error', new Error('not implemented')); - }; - - Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug$2('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false); - - var endFn = doEnd ? onend : cleanup; - if (state.endEmitted) nextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug$2('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug$2('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug$2('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', cleanup); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug$2('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug$2('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug$2('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (listenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug$2('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug$2('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug$2('pipe resume'); - src.resume(); - } - - return dest; - }; - - function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug$2('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && src.listeners('data').length) { - state.flowing = true; - flow(src); - } - }; - } - - Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var _i = 0; _i < len; _i++) { - dests[_i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var i = indexOf(state.pipes, dest); - if (i === -1) return this; - - state.pipes.splice(i, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this); - - return this; - }; - - // set up data events if they are asked for - // Ensure readable listeners eventually get something - Readable.prototype.on = function (ev, fn) { - var res = EventEmitter$2.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - nextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; - }; - Readable.prototype.addListener = Readable.prototype.on; - - function nReadingNextTick(self) { - debug$2('readable nexttick read 0'); - self.read(0); - } - - // pause() and resume() are remnants of the legacy readable stream API - // If the user uses them, then switch into old mode. - Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug$2('resume'); - state.flowing = true; - resume(this, state); - } - return this; - }; - - function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - nextTick(resume_, stream, state); - } - } - - function resume_(stream, state) { - if (!state.reading) { - debug$2('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); - } - - Readable.prototype.pause = function () { - debug$2('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug$2('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; - }; - - function flow(stream) { - var state = stream._readableState; - debug$2('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} - } - - // wrap an old-style stream as the async data source. - // This is *not* part of the readable stream interface. - // It is an ugly unfortunate mess of history. - Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug$2('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug$2('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug$2('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; - }; - - // exposed for testing purposes only. - Readable._fromList = fromList; - - // Pluck off n bytes from an array of buffers. - // Length is the combined lengths of all the buffers in the list. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; - } - - // Extracts only enough buffered data to satisfy the amount requested. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; - } - - // Copies a specified amount of characters from the list of buffered data - // chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } - - // Copies a specified amount of bytes from the list of buffered data chunks. - // This function is designed to be inlinable, so please take care when making - // changes to the function body. - function copyFromBuffer(n, list) { - var ret = Buffer$1.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; - } - - function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - nextTick(endReadableNT, state, stream); - } - } - - function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } - } - - function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } - } - - function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; - } - - // A bit simpler than readable streams. - Writable.WritableState = WritableState; - inherits$3(Writable, EventEmitter$2); - - function nop() {} - - function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; - } - - function WritableState(options, stream) { - Object.defineProperty(this, 'buffer', { - get: deprecate$1(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; - - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); - } - - WritableState.prototype.getBuffer = function writableStateGetBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; - }; - function Writable(options) { - - // Writable ctor is applied to Duplexes, though they're not - // instanceof Writable, they're instanceof Readable. - if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options); - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - EventEmitter$2.call(this); - } - - // Otherwise people can pipe Writable streams, which is just wrong. - Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); - }; - - function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - nextTick(cb, er); - } - - // If we get something that is not a buffer, string, null, or undefined, - // and we're not in objectMode, then that's an error. - // Otherwise stream chunks are all considered to be of length=1, and the - // watermarks determine how many objects to keep in the buffer, rather than - // how many bytes or characters. - function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - // Always throw error if a null is written - // if we are not in object mode then throw - // if it is not a buffer, string, or undefined. - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - nextTick(cb, er); - valid = false; - } - return valid; - } - - Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, chunk, encoding, cb); - } - - return ret; - }; - - Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; - }; - - Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } - }; - - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; - }; - - function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer$1.from(chunk, encoding); - } - return chunk; - } - - // if we're already writing something, then just put this - // in the queue, and wait our turn. Otherwise, call _write - // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, chunk, encoding, cb) { - chunk = decodeChunk(state, chunk, encoding); - - if (Buffer$1.isBuffer(chunk)) encoding = 'buffer'; - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; - } - - function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; - } - - function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) nextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } - - function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; - } - - function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - nextTick(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } - } - - function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); - } - - // Must force callback to be called on nextTick, so that we don't - // emit 'drain' before the write() consumer gets the 'false' return - // value, and has a chance to attach a 'drain' listener. - function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } - } - - // if there's something in the buffer waiting, then process it - function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; - } - - Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('not implemented')); - }; - - Writable.prototype._writev = null; - - Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); - }; - - function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; - } - - function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } - } - - function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; - } - - function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; - } - - // It seems a linked list but it is not - // there will be only 2 of these for each stream - function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; - } - - inherits$3(Duplex, Readable); - - var keys = Object.keys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } - function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); - } - - // the no-half-open enforcer - function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - nextTick(onEndNT, this); - } - - function onEndNT(self) { - self.end(); - } - - // a transform stream is a readable/writable stream where you do - inherits$3(Transform, Duplex); - - function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; - } - - function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } - } - function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - // when the writable side finishes, then flush out anything remaining. - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er) { - done(stream, er); - });else done(stream); - }); - } - - Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); - }; - - // This is the part where you do stuff! - // override this function in implementation classes. - // 'chunk' is an input chunk. - // - // Call `push(newChunk)` to pass along transformed output - // to the readable side. You may call 'push' zero or more times. - // - // Call `cb(err)` when you are done with this chunk. If you pass - // an error, then that'll put the hurt on the whole operation. If you - // never call cb(), then you'll never get another chunk. - Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('Not implemented'); - }; - - Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } - }; - - // Doesn't matter what the args are here. - // _transform does all the work. - // That we got here means that the readable side wants more data. - Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } - }; - - function done(stream, er) { - if (er) return stream.emit('error', er); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); - } - - inherits$3(PassThrough, Transform); - function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); - } - - PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); - }; - - inherits$3(Stream, EventEmitter$2); - Stream.Readable = Readable; - Stream.Writable = Writable; - Stream.Duplex = Duplex; - Stream.Transform = Transform; - Stream.PassThrough = PassThrough; - - // Backwards-compat with node 0.4.x - Stream.Stream = Stream; - - // old-style streams. Note that the pipe method (the only relevant - // part of this class) is overridden in the Readable class. - - function Stream() { - EventEmitter$2.call(this); - } - - Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EventEmitter$2.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; - }; - - var _polyfillNode_stream = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': Stream, - Readable: Readable, - Writable: Writable, - Duplex: Duplex, - Transform: Transform, - PassThrough: PassThrough, - Stream: Stream - }); - - var require$$0$2 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_stream); - - var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_util$1); - - var WritableStream = require$$0$2.Writable; - var inherits$1 = require$$0$1.inherits; - - var browserStdout = BrowserStdout; - - - inherits$1(BrowserStdout, WritableStream); - - function BrowserStdout(opts) { - if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) - - opts = opts || {}; - WritableStream.call(this, opts); - this.label = (opts.label !== undefined) ? opts.label : 'stdout'; - } - - BrowserStdout.prototype._write = function(chunks, encoding, cb) { - var output = chunks.toString ? chunks.toString() : chunks; - if (this.label === false) { - console.log(output); - } else { - console.log(this.label+':', output); - } - nextTick$1(cb); - }; - - /** - * Parse the given `qs`. - * - * @private - * @param {string} qs - * @return {Object} - */ - var parseQuery$1 = function parseQuery(qs) { - return qs - .replace('?', '') - .split('&') - .reduce(function (obj, pair) { - var i = pair.indexOf('='); - var key = pair.slice(0, i); - var val = pair.slice(++i); - - // Due to how the URLSearchParams API treats spaces - obj[key] = decodeURIComponent(val.replace(/\+/g, '%20')); - - return obj; - }, {}); - }; - - /** - * Highlight the given string of `js`. - * - * @private - * @param {string} js - * @return {string} - */ - function highlight(js) { - return js - .replace(//g, '>') - .replace(/\/\/(.*)/gm, '//$1') - .replace(/('.*?')/gm, '$1') - .replace(/(\d+\.\d+)/gm, '$1') - .replace(/(\d+)/gm, '$1') - .replace( - /\bnew[ \t]+(\w+)/gm, - 'new $1' - ) - .replace( - /\b(function|new|throw|return|var|if|else)\b/gm, - '$1' - ); - } - - /** - * Highlight the contents of tag `name`. - * - * @private - * @param {string} name - */ - var highlightTags$1 = function highlightTags(name) { - var code = document.getElementById('mocha').getElementsByTagName(name); - for (var i = 0, len = code.length; i < len; ++i) { - code[i].innerHTML = highlight(code[i].innerHTML); - } - }; - - var mocha$1 = {exports: {}}; - - var escapeStringRegexp = string => { - if (typeof string !== 'string') { - throw new TypeError('Expected a string'); - } - - // Escape characters with special meaning either inside or outside character sets. - // Use a simple backslash escape when it’s always valid, and a \unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. - return string - .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') - .replace(/-/g, '\\x2d'); - }; - - // Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - - // resolves . and .. elements in a path array with directory names there - // must be no slashes, empty elements, or device names (c:\) in the array - // (so also no leading and trailing slashes - it does not distinguish - // relative and absolute paths) - function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; - } - - // Split a filename into [root, dir, basename, ext], unix version - // 'root' is just a slash, or nothing. - var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); - }; - - // path.resolve([from ...], to) - // posix version - function resolve() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : '/'; - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - } - // path.normalize(path) - // posix version - function normalize(path) { - var isPathAbsolute = isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isPathAbsolute).join('/'); - - if (!path && !isPathAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isPathAbsolute ? '/' : '') + path; - } - // posix version - function isAbsolute(path) { - return path.charAt(0) === '/'; - } - - // posix version - function join() { - var paths = Array.prototype.slice.call(arguments, 0); - return normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); - } - - - // path.relative(from, to) - // posix version - function relative(from, to) { - from = resolve(from).substr(1); - to = resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); - } - - var sep = '/'; - var delimiter = ':'; - - function dirname(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; - } - - function basename(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; - } - - - function extname(path) { - return splitPath(path)[3]; - } - var _polyfillNode_path = { - extname: extname, - basename: basename, - dirname: dirname, - sep: sep, - delimiter: delimiter, - relative: relative, - join: join, - isAbsolute: isAbsolute, - normalize: normalize, - resolve: resolve - }; - function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; - } - - // String.prototype.substr - negative index don't work in IE8 - var substr = true ? - function (str, start, len) { return str.substr(start, len) } : - 0 - ; - - var _polyfillNode_path$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - resolve: resolve, - normalize: normalize, - isAbsolute: isAbsolute, - join: join, - relative: relative, - sep: sep, - delimiter: delimiter, - dirname: dirname, - basename: basename, - extname: extname, - 'default': _polyfillNode_path - }); - - var require$$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_path$1); - - var reporters = {}; - - var base$1 = {exports: {}}; - - var lib = {}; - - var base = {}; - - /*istanbul ignore start*/ - - (function (exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = Diff; - - /*istanbul ignore end*/ - function Diff() {} - - Diff.prototype = { - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - diff: function diff(oldString, newString) { - /*istanbul ignore start*/ - var - /*istanbul ignore end*/ - options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var callback = options.callback; - - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.options = options; - var self = this; - - function done(value) { - if (callback) { - setTimeout(function () { - callback(undefined, value); - }, 0); - return true; - } else { - return value; - } - } // Allow subclasses to massage the input prior to running - - - oldString = this.castInput(oldString); - newString = this.castInput(newString); - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - var newLen = newString.length, - oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ - newPos: -1, - components: [] - }]; // Seed editLength = 0, i.e. the content starts with the same values - - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - // Identity per the equality and tokenizer - return done([{ - value: this.join(newString), - count: newString.length - }]); - } // Main worker method. checks all permutations of a given edit length for acceptance. - - - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = - /*istanbul ignore start*/ - void 0 - /*istanbul ignore end*/ - ; - - var addPath = bestPath[diagonalPath - 1], - removePath = bestPath[diagonalPath + 1], - _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - - if (addPath) { - // No one else is going to attempt to use this value, clear it - bestPath[diagonalPath - 1] = undefined; - } - - var canAdd = addPath && addPath.newPos + 1 < newLen, - canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - - if (!canAdd && !canRemove) { - // If this path is a terminal then prune - bestPath[diagonalPath] = undefined; - continue; - } // Select the diagonal that we want to branch from. We select the prior - // path whose position in the new string is the farthest from the origin - // and does not pass the bounds of the diff graph - - - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self.pushComponent(basePath.components, undefined, true); - } else { - basePath = addPath; // No need to clone, we've pulled it from the list - - basePath.newPos++; - self.pushComponent(basePath.components, true, undefined); - } - - _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done - - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); - } else { - // Otherwise track this path as a potential candidate and continue. - bestPath[diagonalPath] = basePath; - } - } - - editLength++; - } // Performs the length of edit iteration. Is a bit fugly as this has to support the - // sync and async mode which is never fun. Loops over execEditLength until a value - // is produced. - - - if (callback) { - (function exec() { - setTimeout(function () { - // This should not happen, but we want to be safe. - - /* istanbul ignore next */ - if (editLength > maxEditLength) { - return callback(); - } - - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - - if (ret) { - return ret; - } - } - } - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - pushComponent: function pushComponent(components, added, removed) { - var last = components[components.length - 1]; - - if (last && last.added === added && last.removed === removed) { - // We need to clone here as the component clone operation is just - // as shallow array clone - components[components.length - 1] = { - count: last.count + 1, - added: added, - removed: removed - }; - } else { - components.push({ - count: 1, - added: added, - removed: removed - }); - } - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, - oldLen = oldString.length, - newPos = basePath.newPos, - oldPos = newPos - diagonalPath, - commonCount = 0; - - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - - if (commonCount) { - basePath.components.push({ - count: commonCount - }); - } - - basePath.newPos = newPos; - return oldPos; - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - equals: function equals(left, right) { - if (this.options.comparator) { - return this.options.comparator(left, right); - } else { - return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); - } - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - removeEmpty: function removeEmpty(array) { - var ret = []; - - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); - } - } - - return ret; - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - castInput: function castInput(value) { - return value; - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - tokenize: function tokenize(value) { - return value.split(''); - }, - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - join: function join(chars) { - return chars.join(''); - } - }; - - function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, - componentLen = components.length, - newPos = 0, - oldPos = 0; - - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function (value, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value.length ? oldValue : value; - }); - component.value = diff.join(value); - } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); - } - - newPos += component.count; // Common case - - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; // Reverse add and remove so removes are output first to match common convention - // The diffing algorithm is tied to add then remove output and this is the simplest - // route to get the desired output with minimal overhead. - - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } // Special case handle for when one terminal is ignored (i.e. whitespace). - // For this case we merge the terminal into the prior string and drop the change. - // This is only available for string mode. - - - var lastComponent = components[componentLen - 1]; - - if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); - } - - return components; - } - - function clonePath(path) { - return { - newPos: path.newPos, - components: path.components.slice(0) - }; - } - - }(base)); - - var character = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(character, "__esModule", { - value: true - }); - character.diffChars = diffChars; - character.characterDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base$6 = _interopRequireDefault$7(base) - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$7(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - var characterDiff = new - /*istanbul ignore start*/ - _base$6 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - - /*istanbul ignore start*/ - character.characterDiff = characterDiff; - - /*istanbul ignore end*/ - function diffChars(oldStr, newStr, options) { - return characterDiff.diff(oldStr, newStr, options); - } - - var word = {}; - - var params = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(params, "__esModule", { - value: true - }); - params.generateOptions = generateOptions; - - /*istanbul ignore end*/ - function generateOptions(options, defaults) { - if (typeof options === 'function') { - defaults.callback = options; - } else if (options) { - for (var name in options) { - /* istanbul ignore else */ - if (options.hasOwnProperty(name)) { - defaults[name] = options[name]; - } - } - } - - return defaults; - } - - /*istanbul ignore start*/ - - Object.defineProperty(word, "__esModule", { - value: true - }); - word.diffWords = diffWords; - word.diffWordsWithSpace = diffWordsWithSpace; - word.wordDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base$5 = _interopRequireDefault$6(base) - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _params$1 = params - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$6(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode - // - // Ranges and exceptions: - // Latin-1 Supplement, 0080–00FF - // - U+00D7 × Multiplication sign - // - U+00F7 ÷ Division sign - // Latin Extended-A, 0100–017F - // Latin Extended-B, 0180–024F - // IPA Extensions, 0250–02AF - // Spacing Modifier Letters, 02B0–02FF - // - U+02C7 ˇ ˇ Caron - // - U+02D8 ˘ ˘ Breve - // - U+02D9 ˙ ˙ Dot Above - // - U+02DA ˚ ˚ Ring Above - // - U+02DB ˛ ˛ Ogonek - // - U+02DC ˜ ˜ Small Tilde - // - U+02DD ˝ ˝ Double Acute Accent - // Latin Extended Additional, 1E00–1EFF - var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; - var reWhitespace = /\S/; - var wordDiff = new - /*istanbul ignore start*/ - _base$5 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - - /*istanbul ignore start*/ - word.wordDiff = wordDiff; - - /*istanbul ignore end*/ - wordDiff.equals = function (left, right) { - if (this.options.ignoreCase) { - left = left.toLowerCase(); - right = right.toLowerCase(); - } - - return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); - }; - - wordDiff.tokenize = function (value) { - // All whitespace symbols except newline group into one token, each newline - in separate token - var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. - - for (var i = 0; i < tokens.length - 1; i++) { - // If we have an empty string in the next field and we have only word chars before and after, merge - if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { - tokens[i] += tokens[i + 2]; - tokens.splice(i + 1, 2); - i--; - } - } - - return tokens; - }; - - function diffWords(oldStr, newStr, options) { - options = - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _params$1 - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - generateOptions) - /*istanbul ignore end*/ - (options, { - ignoreWhitespace: true - }); - return wordDiff.diff(oldStr, newStr, options); - } - - function diffWordsWithSpace(oldStr, newStr, options) { - return wordDiff.diff(oldStr, newStr, options); - } - - var line = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(line, "__esModule", { - value: true - }); - line.diffLines = diffLines; - line.diffTrimmedLines = diffTrimmedLines; - line.lineDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base$4 = _interopRequireDefault$5(base) - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _params = params - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$5(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - var lineDiff = new - /*istanbul ignore start*/ - _base$4 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - - /*istanbul ignore start*/ - line.lineDiff = lineDiff; - - /*istanbul ignore end*/ - lineDiff.tokenize = function (value) { - var retLines = [], - linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line - - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } // Merge the content and line separators into single tokens - - - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; - - if (i % 2 && !this.options.newlineIsToken) { - retLines[retLines.length - 1] += line; - } else { - if (this.options.ignoreWhitespace) { - line = line.trim(); - } - - retLines.push(line); - } - } - - return retLines; - }; - - function diffLines(oldStr, newStr, callback) { - return lineDiff.diff(oldStr, newStr, callback); - } - - function diffTrimmedLines(oldStr, newStr, callback) { - var options = - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _params - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - generateOptions) - /*istanbul ignore end*/ - (callback, { - ignoreWhitespace: true - }); - return lineDiff.diff(oldStr, newStr, options); - } - - var sentence = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(sentence, "__esModule", { - value: true - }); - sentence.diffSentences = diffSentences; - sentence.sentenceDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base$3 = _interopRequireDefault$4(base) - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$4(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - var sentenceDiff = new - /*istanbul ignore start*/ - _base$3 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - - /*istanbul ignore start*/ - sentence.sentenceDiff = sentenceDiff; - - /*istanbul ignore end*/ - sentenceDiff.tokenize = function (value) { - return value.split(/(\S.+?[.!?])(?=\s+|$)/); - }; - - function diffSentences(oldStr, newStr, callback) { - return sentenceDiff.diff(oldStr, newStr, callback); - } - - var css = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(css, "__esModule", { - value: true - }); - css.diffCss = diffCss; - css.cssDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base$2 = _interopRequireDefault$3(base) - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$3(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - var cssDiff = new - /*istanbul ignore start*/ - _base$2 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - - /*istanbul ignore start*/ - css.cssDiff = cssDiff; - - /*istanbul ignore end*/ - cssDiff.tokenize = function (value) { - return value.split(/([{}:;,]|\s+)/); - }; - - function diffCss(oldStr, newStr, callback) { - return cssDiff.diff(oldStr, newStr, callback); - } - - var json$1 = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(json$1, "__esModule", { - value: true - }); - json$1.diffJson = diffJson; - json$1.canonicalize = canonicalize; - json$1.jsonDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base$1 = _interopRequireDefault$2(base) - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _line$1 = line - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - /*istanbul ignore end*/ - var objectPrototypeToString = Object.prototype.toString; - var jsonDiff = new - /*istanbul ignore start*/ - _base$1 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a - // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: - - /*istanbul ignore start*/ - json$1.jsonDiff = jsonDiff; - - /*istanbul ignore end*/ - jsonDiff.useLongestToken = true; - jsonDiff.tokenize = - /*istanbul ignore start*/ - _line$1 - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - lineDiff - /*istanbul ignore end*/ - .tokenize; - - jsonDiff.castInput = function (value) { - /*istanbul ignore start*/ - var _this$options = - /*istanbul ignore end*/ - this.options, - undefinedReplacement = _this$options.undefinedReplacement, - _this$options$stringi = _this$options.stringifyReplacer, - stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) - /*istanbul ignore start*/ - { - return ( - /*istanbul ignore end*/ - typeof v === 'undefined' ? undefinedReplacement : v - ); - } : _this$options$stringi; - return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); - }; - - jsonDiff.equals = function (left, right) { - return ( - /*istanbul ignore start*/ - _base$1 - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) - ); - }; - - function diffJson(oldObj, newObj, options) { - return jsonDiff.diff(oldObj, newObj, options); - } // This function handles the presence of circular references by bailing out when encountering an - // object that is already on the "stack" of items being processed. Accepts an optional replacer - - - function canonicalize(obj, stack, replacementStack, replacer, key) { - stack = stack || []; - replacementStack = replacementStack || []; - - if (replacer) { - obj = replacer(key, obj); - } - - var i; - - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; - } - } - - var canonicalizedObj; - - if ('[object Array]' === objectPrototypeToString.call(obj)) { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); - - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); - } - - stack.pop(); - replacementStack.pop(); - return canonicalizedObj; - } - - if (obj && obj.toJSON) { - obj = obj.toJSON(); - } - - if ( - /*istanbul ignore start*/ - _typeof( - /*istanbul ignore end*/ - obj) === 'object' && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); - - var sortedKeys = [], - _key; - - for (_key in obj) { - /* istanbul ignore else */ - if (obj.hasOwnProperty(_key)) { - sortedKeys.push(_key); - } - } - - sortedKeys.sort(); - - for (i = 0; i < sortedKeys.length; i += 1) { - _key = sortedKeys[i]; - canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); - } - - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; - } - - return canonicalizedObj; - } - - var array$1 = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(array$1, "__esModule", { - value: true - }); - array$1.diffArrays = diffArrays; - array$1.arrayDiff = void 0; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base = _interopRequireDefault$1(base) - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - var arrayDiff = new - /*istanbul ignore start*/ - _base - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - - /*istanbul ignore start*/ - array$1.arrayDiff = arrayDiff; - - /*istanbul ignore end*/ - arrayDiff.tokenize = function (value) { - return value.slice(); - }; - - arrayDiff.join = arrayDiff.removeEmpty = function (value) { - return value; - }; - - function diffArrays(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); - } - - var apply = {}; - - var parse$2 = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(parse$2, "__esModule", { - value: true - }); - parse$2.parsePatch = parsePatch; - - /*istanbul ignore end*/ - function parsePatch(uniDiff) { - /*istanbul ignore start*/ - var - /*istanbul ignore end*/ - options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], - list = [], - i = 0; - - function parseIndex() { - var index = {}; - list.push(index); // Parse diff metadata - - while (i < diffstr.length) { - var line = diffstr[i]; // File header found, end parsing diff metadata - - if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { - break; - } // Diff index - - - var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); - - if (header) { - index.index = header[1]; - } - - i++; - } // Parse file headers if they are defined. Unified diff requires them, but - // there's no technical issues to have an isolated hunk without file header - - - parseFileHeader(index); - parseFileHeader(index); // Parse hunks - - index.hunks = []; - - while (i < diffstr.length) { - var _line = diffstr[i]; - - if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { - break; - } else if (/^@@/.test(_line)) { - index.hunks.push(parseHunk()); - } else if (_line && options.strict) { - // Ignore unexpected content unless in strict mode - throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); - } else { - i++; - } - } - } // Parses the --- and +++ headers, if none are found, no lines - // are consumed. - - - function parseFileHeader(index) { - var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); - - if (fileHeader) { - var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; - var data = fileHeader[2].split('\t', 2); - var fileName = data[0].replace(/\\\\/g, '\\'); - - if (/^".*"$/.test(fileName)) { - fileName = fileName.substr(1, fileName.length - 2); - } - - index[keyPrefix + 'FileName'] = fileName; - index[keyPrefix + 'Header'] = (data[1] || '').trim(); - i++; - } - } // Parses a hunk - // This assumes that we are at the start of a hunk. - - - function parseHunk() { - var chunkHeaderIndex = i, - chunkHeaderLine = diffstr[i++], - chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); - var hunk = { - oldStart: +chunkHeader[1], - oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2], - newStart: +chunkHeader[3], - newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4], - lines: [], - linedelimiters: [] - }; // Unified Diff Format quirk: If the chunk size is 0, - // the first number is one lower than one would expect. - // https://www.artima.com/weblogs/viewpost.jsp?thread=164293 - - if (hunk.oldLines === 0) { - hunk.oldStart += 1; - } - - if (hunk.newLines === 0) { - hunk.newStart += 1; - } - - var addCount = 0, - removeCount = 0; - - for (; i < diffstr.length; i++) { - // Lines starting with '---' could be mistaken for the "remove line" operation - // But they could be the header for the next file. Therefore prune such cases out. - if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { - break; - } - - var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0]; - - if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { - hunk.lines.push(diffstr[i]); - hunk.linedelimiters.push(delimiters[i] || '\n'); - - if (operation === '+') { - addCount++; - } else if (operation === '-') { - removeCount++; - } else if (operation === ' ') { - addCount++; - removeCount++; - } - } else { - break; - } - } // Handle the empty block count case - - - if (!addCount && hunk.newLines === 1) { - hunk.newLines = 0; - } - - if (!removeCount && hunk.oldLines === 1) { - hunk.oldLines = 0; - } // Perform optional sanity checking - - - if (options.strict) { - if (addCount !== hunk.newLines) { - throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); - } - - if (removeCount !== hunk.oldLines) { - throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); - } - } - - return hunk; - } - - while (i < diffstr.length) { - parseIndex(); - } - - return list; - } - - var distanceIterator = {}; - - /*istanbul ignore start*/ - - (function (exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = _default; - - /*istanbul ignore end*/ - // Iterator that traverses in the range of [min, max], stepping - // by distance from a given start position. I.e. for [0, 4], with - // start of 2, this will iterate 2, 3, 1, 4, 0. - function - /*istanbul ignore start*/ - _default - /*istanbul ignore end*/ - (start, minLine, maxLine) { - var wantForward = true, - backwardExhausted = false, - forwardExhausted = false, - localOffset = 1; - return function iterator() { - if (wantForward && !forwardExhausted) { - if (backwardExhausted) { - localOffset++; - } else { - wantForward = false; - } // Check if trying to fit beyond text length, and if not, check it fits - // after offset location (or desired location on first iteration) - - - if (start + localOffset <= maxLine) { - return localOffset; - } - - forwardExhausted = true; - } - - if (!backwardExhausted) { - if (!forwardExhausted) { - wantForward = true; - } // Check if trying to fit before text beginning, and if not, check it fits - // before offset location - - - if (minLine <= start - localOffset) { - return -localOffset++; - } - - backwardExhausted = true; - return iterator(); - } // We tried to fit hunk before text beginning and beyond text length, then - // hunk can't fit on the text. Return undefined - - }; - } - - }(distanceIterator)); - - /*istanbul ignore start*/ - - Object.defineProperty(apply, "__esModule", { - value: true - }); - apply.applyPatch = applyPatch; - apply.applyPatches = applyPatches; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _parse$1 = parse$2 - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _distanceIterator = _interopRequireDefault(distanceIterator) - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - function applyPatch(source, uniDiff) { - /*istanbul ignore start*/ - var - /*istanbul ignore end*/ - options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - if (typeof uniDiff === 'string') { - uniDiff = - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _parse$1 - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - parsePatch) - /*istanbul ignore end*/ - (uniDiff); - } - - if (Array.isArray(uniDiff)) { - if (uniDiff.length > 1) { - throw new Error('applyPatch only works with a single input.'); - } - - uniDiff = uniDiff[0]; - } // Apply the diff to the input - - - var lines = source.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], - hunks = uniDiff.hunks, - compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) - /*istanbul ignore start*/ - { - return ( - /*istanbul ignore end*/ - line === patchContent - ); - }, - errorCount = 0, - fuzzFactor = options.fuzzFactor || 0, - minLine = 0, - offset = 0, - removeEOFNL, - addEOFNL; - /** - * Checks if the hunk exactly fits on the provided location - */ - - - function hunkFits(hunk, toPos) { - for (var j = 0; j < hunk.lines.length; j++) { - var line = hunk.lines[j], - operation = line.length > 0 ? line[0] : ' ', - content = line.length > 0 ? line.substr(1) : line; - - if (operation === ' ' || operation === '-') { - // Context sanity check - if (!compareLine(toPos + 1, lines[toPos], operation, content)) { - errorCount++; - - if (errorCount > fuzzFactor) { - return false; - } - } - - toPos++; - } - } - - return true; - } // Search best fit offsets for each hunk based on the previous ones - - - for (var i = 0; i < hunks.length; i++) { - var hunk = hunks[i], - maxLine = lines.length - hunk.oldLines, - localOffset = 0, - toPos = offset + hunk.oldStart - 1; - var iterator = - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _distanceIterator - /*istanbul ignore end*/ - [ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ])(toPos, minLine, maxLine); - - for (; localOffset !== undefined; localOffset = iterator()) { - if (hunkFits(hunk, toPos + localOffset)) { - hunk.offset = offset += localOffset; - break; - } - } - - if (localOffset === undefined) { - return false; - } // Set lower text limit to end of the current hunk, so next ones don't try - // to fit over already patched text - - - minLine = hunk.offset + hunk.oldStart + hunk.oldLines; - } // Apply patch hunks - - - var diffOffset = 0; - - for (var _i = 0; _i < hunks.length; _i++) { - var _hunk = hunks[_i], - _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; - - diffOffset += _hunk.newLines - _hunk.oldLines; - - for (var j = 0; j < _hunk.lines.length; j++) { - var line = _hunk.lines[j], - operation = line.length > 0 ? line[0] : ' ', - content = line.length > 0 ? line.substr(1) : line, - delimiter = _hunk.linedelimiters[j]; - - if (operation === ' ') { - _toPos++; - } else if (operation === '-') { - lines.splice(_toPos, 1); - delimiters.splice(_toPos, 1); - /* istanbul ignore else */ - } else if (operation === '+') { - lines.splice(_toPos, 0, content); - delimiters.splice(_toPos, 0, delimiter); - _toPos++; - } else if (operation === '\\') { - var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; - - if (previousOperation === '+') { - removeEOFNL = true; - } else if (previousOperation === '-') { - addEOFNL = true; - } - } - } - } // Handle EOFNL insertion/removal - - - if (removeEOFNL) { - while (!lines[lines.length - 1]) { - lines.pop(); - delimiters.pop(); - } - } else if (addEOFNL) { - lines.push(''); - delimiters.push('\n'); - } - - for (var _k = 0; _k < lines.length - 1; _k++) { - lines[_k] = lines[_k] + delimiters[_k]; - } - - return lines.join(''); - } // Wrapper that supports multiple file patches via callbacks. - - - function applyPatches(uniDiff, options) { - if (typeof uniDiff === 'string') { - uniDiff = - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _parse$1 - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - parsePatch) - /*istanbul ignore end*/ - (uniDiff); - } - - var currentIndex = 0; - - function processIndex() { - var index = uniDiff[currentIndex++]; - - if (!index) { - return options.complete(); - } - - options.loadFile(index, function (err, data) { - if (err) { - return options.complete(err); - } - - var updatedContent = applyPatch(data, index, options); - options.patched(index, updatedContent, function (err) { - if (err) { - return options.complete(err); - } - - processIndex(); - }); - }); - } - - processIndex(); - } - - var merge$1 = {}; - - var create = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(create, "__esModule", { - value: true - }); - create.structuredPatch = structuredPatch; - create.formatPatch = formatPatch; - create.createTwoFilesPatch = createTwoFilesPatch; - create.createPatch = createPatch; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _line = line - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); } - - function _nonIterableSpread$1() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - - function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); } - - function _iterableToArray$1(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } - - function _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); } - - function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - - /*istanbul ignore end*/ - function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - if (!options) { - options = {}; - } - - if (typeof options.context === 'undefined') { - options.context = 4; - } - - var diff = - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _line - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - diffLines) - /*istanbul ignore end*/ - (oldStr, newStr, options); - diff.push({ - value: '', - lines: [] - }); // Append an empty value to make cleanup easier - - function contextLines(lines) { - return lines.map(function (entry) { - return ' ' + entry; - }); - } - - var hunks = []; - var oldRangeStart = 0, - newRangeStart = 0, - curRange = [], - oldLine = 1, - newLine = 1; - - /*istanbul ignore start*/ - var _loop = function _loop( - /*istanbul ignore end*/ - i) { - var current = diff[i], - lines = current.lines || current.value.replace(/\n$/, '').split('\n'); - current.lines = lines; - - if (current.added || current.removed) { - /*istanbul ignore start*/ - var _curRange; - - /*istanbul ignore end*/ - // If we have previous context, start with that - if (!oldRangeStart) { - var prev = diff[i - 1]; - oldRangeStart = oldLine; - newRangeStart = newLine; - - if (prev) { - curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; - oldRangeStart -= curRange.length; - newRangeStart -= curRange.length; - } - } // Output our changes - - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_curRange = - /*istanbul ignore end*/ - curRange).push.apply( - /*istanbul ignore start*/ - _curRange - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray$1( - /*istanbul ignore end*/ - lines.map(function (entry) { - return (current.added ? '+' : '-') + entry; - }))); // Track the updated file position - - - if (current.added) { - newLine += lines.length; - } else { - oldLine += lines.length; - } - } else { - // Identical context lines. Track line changes - if (oldRangeStart) { - // Close out any changes that have been output (or join overlapping) - if (lines.length <= options.context * 2 && i < diff.length - 2) { - /*istanbul ignore start*/ - var _curRange2; - - /*istanbul ignore end*/ - // Overlapping - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_curRange2 = - /*istanbul ignore end*/ - curRange).push.apply( - /*istanbul ignore start*/ - _curRange2 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray$1( - /*istanbul ignore end*/ - contextLines(lines))); - } else { - /*istanbul ignore start*/ - var _curRange3; - - /*istanbul ignore end*/ - // end the range and output - var contextSize = Math.min(lines.length, options.context); - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_curRange3 = - /*istanbul ignore end*/ - curRange).push.apply( - /*istanbul ignore start*/ - _curRange3 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray$1( - /*istanbul ignore end*/ - contextLines(lines.slice(0, contextSize)))); - - var hunk = { - oldStart: oldRangeStart, - oldLines: oldLine - oldRangeStart + contextSize, - newStart: newRangeStart, - newLines: newLine - newRangeStart + contextSize, - lines: curRange - }; - - if (i >= diff.length - 2 && lines.length <= options.context) { - // EOF is inside this hunk - var oldEOFNewline = /\n$/.test(oldStr); - var newEOFNewline = /\n$/.test(newStr); - var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; - - if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { - // special case: old has no eol and no trailing context; no-nl can end up before adds - // however, if the old file is empty, do not output the no-nl line - curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); - } - - if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { - curRange.push('\\ No newline at end of file'); - } - } - - hunks.push(hunk); - oldRangeStart = 0; - newRangeStart = 0; - curRange = []; - } - } - - oldLine += lines.length; - newLine += lines.length; - } - }; - - for (var i = 0; i < diff.length; i++) { - /*istanbul ignore start*/ - _loop( - /*istanbul ignore end*/ - i); - } - - return { - oldFileName: oldFileName, - newFileName: newFileName, - oldHeader: oldHeader, - newHeader: newHeader, - hunks: hunks - }; - } - - function formatPatch(diff) { - var ret = []; - - if (diff.oldFileName == diff.newFileName) { - ret.push('Index: ' + diff.oldFileName); - } - - ret.push('==================================================================='); - ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); - ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); - - for (var i = 0; i < diff.hunks.length; i++) { - var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0, - // the first number is one lower than one would expect. - // https://www.artima.com/weblogs/viewpost.jsp?thread=164293 - - if (hunk.oldLines === 0) { - hunk.oldStart -= 1; - } - - if (hunk.newLines === 0) { - hunk.newStart -= 1; - } - - ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); - ret.push.apply(ret, hunk.lines); - } - - return ret.join('\n') + '\n'; - } - - function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); - } - - function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { - return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); - } - - var array = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(array, "__esModule", { - value: true - }); - array.arrayEqual = arrayEqual; - array.arrayStartsWith = arrayStartsWith; - - /*istanbul ignore end*/ - function arrayEqual(a, b) { - if (a.length !== b.length) { - return false; - } - - return arrayStartsWith(a, b); - } - - function arrayStartsWith(array, start) { - if (start.length > array.length) { - return false; - } - - for (var i = 0; i < start.length; i++) { - if (start[i] !== array[i]) { - return false; - } - } - - return true; - } - - /*istanbul ignore start*/ - - Object.defineProperty(merge$1, "__esModule", { - value: true - }); - merge$1.calcLineCount = calcLineCount; - merge$1.merge = merge; - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _create = create - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _parse = parse$2 - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _array = array - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - - function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - - function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - - function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } - - function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - - function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - - /*istanbul ignore end*/ - function calcLineCount(hunk) { - /*istanbul ignore start*/ - var _calcOldNewLineCount = - /*istanbul ignore end*/ - calcOldNewLineCount(hunk.lines), - oldLines = _calcOldNewLineCount.oldLines, - newLines = _calcOldNewLineCount.newLines; - - if (oldLines !== undefined) { - hunk.oldLines = oldLines; - } else { - delete hunk.oldLines; - } - - if (newLines !== undefined) { - hunk.newLines = newLines; - } else { - delete hunk.newLines; - } - } - - function merge(mine, theirs, base) { - mine = loadPatch(mine, base); - theirs = loadPatch(theirs, base); - var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning. - // Leaving sanity checks on this to the API consumer that may know more about the - // meaning in their own context. - - if (mine.index || theirs.index) { - ret.index = mine.index || theirs.index; - } - - if (mine.newFileName || theirs.newFileName) { - if (!fileNameChanged(mine)) { - // No header or no change in ours, use theirs (and ours if theirs does not exist) - ret.oldFileName = theirs.oldFileName || mine.oldFileName; - ret.newFileName = theirs.newFileName || mine.newFileName; - ret.oldHeader = theirs.oldHeader || mine.oldHeader; - ret.newHeader = theirs.newHeader || mine.newHeader; - } else if (!fileNameChanged(theirs)) { - // No header or no change in theirs, use ours - ret.oldFileName = mine.oldFileName; - ret.newFileName = mine.newFileName; - ret.oldHeader = mine.oldHeader; - ret.newHeader = mine.newHeader; - } else { - // Both changed... figure it out - ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); - ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); - ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); - ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); - } - } - - ret.hunks = []; - var mineIndex = 0, - theirsIndex = 0, - mineOffset = 0, - theirsOffset = 0; - - while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { - var mineCurrent = mine.hunks[mineIndex] || { - oldStart: Infinity - }, - theirsCurrent = theirs.hunks[theirsIndex] || { - oldStart: Infinity - }; - - if (hunkBefore(mineCurrent, theirsCurrent)) { - // This patch does not overlap with any of the others, yay. - ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); - mineIndex++; - theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; - } else if (hunkBefore(theirsCurrent, mineCurrent)) { - // This patch does not overlap with any of the others, yay. - ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); - theirsIndex++; - mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; - } else { - // Overlap, merge as best we can - var mergedHunk = { - oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), - oldLines: 0, - newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), - newLines: 0, - lines: [] - }; - mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); - theirsIndex++; - mineIndex++; - ret.hunks.push(mergedHunk); - } - } - - return ret; - } - - function loadPatch(param, base) { - if (typeof param === 'string') { - if (/^@@/m.test(param) || /^Index:/m.test(param)) { - return ( - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _parse - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - parsePatch) - /*istanbul ignore end*/ - (param)[0] - ); - } - - if (!base) { - throw new Error('Must provide a base reference or pass in a patch'); - } - - return ( - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _create - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - structuredPatch) - /*istanbul ignore end*/ - (undefined, undefined, base, param) - ); - } - - return param; - } - - function fileNameChanged(patch) { - return patch.newFileName && patch.newFileName !== patch.oldFileName; - } - - function selectField(index, mine, theirs) { - if (mine === theirs) { - return mine; - } else { - index.conflict = true; - return { - mine: mine, - theirs: theirs - }; - } - } - - function hunkBefore(test, check) { - return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; - } - - function cloneHunk(hunk, offset) { - return { - oldStart: hunk.oldStart, - oldLines: hunk.oldLines, - newStart: hunk.newStart + offset, - newLines: hunk.newLines, - lines: hunk.lines - }; - } - - function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { - // This will generally result in a conflicted hunk, but there are cases where the context - // is the only overlap where we can successfully merge the content here. - var mine = { - offset: mineOffset, - lines: mineLines, - index: 0 - }, - their = { - offset: theirOffset, - lines: theirLines, - index: 0 - }; // Handle any leading content - - insertLeading(hunk, mine, their); - insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each. - - while (mine.index < mine.lines.length && their.index < their.lines.length) { - var mineCurrent = mine.lines[mine.index], - theirCurrent = their.lines[their.index]; - - if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) { - // Both modified ... - mutualChange(hunk, mine, their); - } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { - /*istanbul ignore start*/ - var _hunk$lines; - - /*istanbul ignore end*/ - // Mine inserted - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_hunk$lines = - /*istanbul ignore end*/ - hunk.lines).push.apply( - /*istanbul ignore start*/ - _hunk$lines - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray( - /*istanbul ignore end*/ - collectChange(mine))); - } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { - /*istanbul ignore start*/ - var _hunk$lines2; - - /*istanbul ignore end*/ - // Theirs inserted - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_hunk$lines2 = - /*istanbul ignore end*/ - hunk.lines).push.apply( - /*istanbul ignore start*/ - _hunk$lines2 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray( - /*istanbul ignore end*/ - collectChange(their))); - } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { - // Mine removed or edited - removal(hunk, mine, their); - } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') { - // Their removed or edited - removal(hunk, their, mine, true); - } else if (mineCurrent === theirCurrent) { - // Context identity - hunk.lines.push(mineCurrent); - mine.index++; - their.index++; - } else { - // Context mismatch - conflict(hunk, collectChange(mine), collectChange(their)); - } - } // Now push anything that may be remaining - - - insertTrailing(hunk, mine); - insertTrailing(hunk, their); - calcLineCount(hunk); - } - - function mutualChange(hunk, mine, their) { - var myChanges = collectChange(mine), - theirChanges = collectChange(their); - - if (allRemoves(myChanges) && allRemoves(theirChanges)) { - // Special case for remove changes that are supersets of one another - if ( - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _array - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - arrayStartsWith) - /*istanbul ignore end*/ - (myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { - /*istanbul ignore start*/ - var _hunk$lines3; - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_hunk$lines3 = - /*istanbul ignore end*/ - hunk.lines).push.apply( - /*istanbul ignore start*/ - _hunk$lines3 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray( - /*istanbul ignore end*/ - myChanges)); - - return; - } else if ( - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _array - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - arrayStartsWith) - /*istanbul ignore end*/ - (theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { - /*istanbul ignore start*/ - var _hunk$lines4; - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_hunk$lines4 = - /*istanbul ignore end*/ - hunk.lines).push.apply( - /*istanbul ignore start*/ - _hunk$lines4 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray( - /*istanbul ignore end*/ - theirChanges)); - - return; - } - } else if ( - /*istanbul ignore start*/ - (/*istanbul ignore end*/ - - /*istanbul ignore start*/ - 0, _array - /*istanbul ignore end*/ - . - /*istanbul ignore start*/ - arrayEqual) - /*istanbul ignore end*/ - (myChanges, theirChanges)) { - /*istanbul ignore start*/ - var _hunk$lines5; - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_hunk$lines5 = - /*istanbul ignore end*/ - hunk.lines).push.apply( - /*istanbul ignore start*/ - _hunk$lines5 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray( - /*istanbul ignore end*/ - myChanges)); - - return; - } - - conflict(hunk, myChanges, theirChanges); - } - - function removal(hunk, mine, their, swap) { - var myChanges = collectChange(mine), - theirChanges = collectContext(their, myChanges); - - if (theirChanges.merged) { - /*istanbul ignore start*/ - var _hunk$lines6; - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - - /*istanbul ignore end*/ - - /*istanbul ignore start*/ - (_hunk$lines6 = - /*istanbul ignore end*/ - hunk.lines).push.apply( - /*istanbul ignore start*/ - _hunk$lines6 - /*istanbul ignore end*/ - , - /*istanbul ignore start*/ - _toConsumableArray( - /*istanbul ignore end*/ - theirChanges.merged)); - } else { - conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); - } - } - - function conflict(hunk, mine, their) { - hunk.conflict = true; - hunk.lines.push({ - conflict: true, - mine: mine, - theirs: their - }); - } - - function insertLeading(hunk, insert, their) { - while (insert.offset < their.offset && insert.index < insert.lines.length) { - var line = insert.lines[insert.index++]; - hunk.lines.push(line); - insert.offset++; - } - } - - function insertTrailing(hunk, insert) { - while (insert.index < insert.lines.length) { - var line = insert.lines[insert.index++]; - hunk.lines.push(line); - } - } - - function collectChange(state) { - var ret = [], - operation = state.lines[state.index][0]; - - while (state.index < state.lines.length) { - var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one "atomic" modify change. - - if (operation === '-' && line[0] === '+') { - operation = '+'; - } - - if (operation === line[0]) { - ret.push(line); - state.index++; - } else { - break; - } - } - - return ret; - } - - function collectContext(state, matchChanges) { - var changes = [], - merged = [], - matchIndex = 0, - contextChanges = false, - conflicted = false; - - while (matchIndex < matchChanges.length && state.index < state.lines.length) { - var change = state.lines[state.index], - match = matchChanges[matchIndex]; // Once we've hit our add, then we are done - - if (match[0] === '+') { - break; - } - - contextChanges = contextChanges || change[0] !== ' '; - merged.push(match); - matchIndex++; // Consume any additions in the other block as a conflict to attempt - // to pull in the remaining context after this - - if (change[0] === '+') { - conflicted = true; - - while (change[0] === '+') { - changes.push(change); - change = state.lines[++state.index]; - } - } - - if (match.substr(1) === change.substr(1)) { - changes.push(change); - state.index++; - } else { - conflicted = true; - } - } - - if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) { - conflicted = true; - } - - if (conflicted) { - return changes; - } - - while (matchIndex < matchChanges.length) { - merged.push(matchChanges[matchIndex++]); - } - - return { - merged: merged, - changes: changes - }; - } - - function allRemoves(changes) { - return changes.reduce(function (prev, change) { - return prev && change[0] === '-'; - }, true); - } - - function skipRemoveSuperset(state, removeChanges, delta) { - for (var i = 0; i < delta; i++) { - var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); - - if (state.lines[state.index + i] !== ' ' + changeContent) { - return false; - } - } - - state.index += delta; - return true; - } - - function calcOldNewLineCount(lines) { - var oldLines = 0; - var newLines = 0; - lines.forEach(function (line) { - if (typeof line !== 'string') { - var myCount = calcOldNewLineCount(line.mine); - var theirCount = calcOldNewLineCount(line.theirs); - - if (oldLines !== undefined) { - if (myCount.oldLines === theirCount.oldLines) { - oldLines += myCount.oldLines; - } else { - oldLines = undefined; - } - } - - if (newLines !== undefined) { - if (myCount.newLines === theirCount.newLines) { - newLines += myCount.newLines; - } else { - newLines = undefined; - } - } - } else { - if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) { - newLines++; - } - - if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) { - oldLines++; - } - } - }); - return { - oldLines: oldLines, - newLines: newLines - }; - } - - var dmp = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(dmp, "__esModule", { - value: true - }); - dmp.convertChangesToDMP = convertChangesToDMP; - - /*istanbul ignore end*/ - // See: http://code.google.com/p/google-diff-match-patch/wiki/API - function convertChangesToDMP(changes) { - var ret = [], - change, - operation; - - for (var i = 0; i < changes.length; i++) { - change = changes[i]; - - if (change.added) { - operation = 1; - } else if (change.removed) { - operation = -1; - } else { - operation = 0; - } - - ret.push([operation, change.value]); - } - - return ret; - } - - var xml = {}; - - /*istanbul ignore start*/ - - Object.defineProperty(xml, "__esModule", { - value: true - }); - xml.convertChangesToXML = convertChangesToXML; - - /*istanbul ignore end*/ - function convertChangesToXML(changes) { - var ret = []; - - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - - ret.push(escapeHTML(change.value)); - - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - } - - return ret.join(''); - } - - function escapeHTML(s) { - var n = s; - n = n.replace(/&/g, '&'); - n = n.replace(//g, '>'); - n = n.replace(/"/g, '"'); - return n; - } - - /*istanbul ignore start*/ - - (function (exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "Diff", { - enumerable: true, - get: function get() { - return _base["default"]; - } - }); - Object.defineProperty(exports, "diffChars", { - enumerable: true, - get: function get() { - return _character.diffChars; - } - }); - Object.defineProperty(exports, "diffWords", { - enumerable: true, - get: function get() { - return _word.diffWords; - } - }); - Object.defineProperty(exports, "diffWordsWithSpace", { - enumerable: true, - get: function get() { - return _word.diffWordsWithSpace; - } - }); - Object.defineProperty(exports, "diffLines", { - enumerable: true, - get: function get() { - return _line.diffLines; - } - }); - Object.defineProperty(exports, "diffTrimmedLines", { - enumerable: true, - get: function get() { - return _line.diffTrimmedLines; - } - }); - Object.defineProperty(exports, "diffSentences", { - enumerable: true, - get: function get() { - return _sentence.diffSentences; - } - }); - Object.defineProperty(exports, "diffCss", { - enumerable: true, - get: function get() { - return _css.diffCss; - } - }); - Object.defineProperty(exports, "diffJson", { - enumerable: true, - get: function get() { - return _json.diffJson; - } - }); - Object.defineProperty(exports, "canonicalize", { - enumerable: true, - get: function get() { - return _json.canonicalize; - } - }); - Object.defineProperty(exports, "diffArrays", { - enumerable: true, - get: function get() { - return _array.diffArrays; - } - }); - Object.defineProperty(exports, "applyPatch", { - enumerable: true, - get: function get() { - return _apply.applyPatch; - } - }); - Object.defineProperty(exports, "applyPatches", { - enumerable: true, - get: function get() { - return _apply.applyPatches; - } - }); - Object.defineProperty(exports, "parsePatch", { - enumerable: true, - get: function get() { - return _parse.parsePatch; - } - }); - Object.defineProperty(exports, "merge", { - enumerable: true, - get: function get() { - return _merge.merge; - } - }); - Object.defineProperty(exports, "structuredPatch", { - enumerable: true, - get: function get() { - return _create.structuredPatch; - } - }); - Object.defineProperty(exports, "createTwoFilesPatch", { - enumerable: true, - get: function get() { - return _create.createTwoFilesPatch; - } - }); - Object.defineProperty(exports, "createPatch", { - enumerable: true, - get: function get() { - return _create.createPatch; - } - }); - Object.defineProperty(exports, "convertChangesToDMP", { - enumerable: true, - get: function get() { - return _dmp.convertChangesToDMP; - } - }); - Object.defineProperty(exports, "convertChangesToXML", { - enumerable: true, - get: function get() { - return _xml.convertChangesToXML; - } - }); - - /*istanbul ignore end*/ - var - /*istanbul ignore start*/ - _base = _interopRequireDefault(base) - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _character = character - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _word = word - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _line = line - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _sentence = sentence - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _css = css - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _json = json$1 - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _array = array$1 - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _apply = apply - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _parse = parse$2 - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _merge = merge$1 - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _create = create - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _dmp = dmp - /*istanbul ignore end*/ - ; - - var - /*istanbul ignore start*/ - _xml = xml - /*istanbul ignore end*/ - ; - - /*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - - /*istanbul ignore end*/ - - }(lib)); - - /** - * Helpers. - */ - - var s$1 = 1000; - var m$1 = s$1 * 60; - var h$1 = m$1 * 60; - var d$1 = h$1 * 24; - var w$1 = d$1 * 7; - var y$1 = d$1 * 365.25; - - /** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - - var ms$1 = function (val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse$1(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong$1(val) : fmtShort$1(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); - }; - - /** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - - function parse$1(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y$1; - case 'weeks': - case 'week': - case 'w': - return n * w$1; - case 'days': - case 'day': - case 'd': - return n * d$1; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h$1; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m$1; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s$1; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } - } - - /** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - - function fmtShort$1(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d$1) { - return Math.round(ms / d$1) + 'd'; - } - if (msAbs >= h$1) { - return Math.round(ms / h$1) + 'h'; - } - if (msAbs >= m$1) { - return Math.round(ms / m$1) + 'm'; - } - if (msAbs >= s$1) { - return Math.round(ms / s$1) + 's'; - } - return ms + 'ms'; - } - - /** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - - function fmtLong$1(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d$1) { - return plural$1(ms, msAbs, d$1, 'day'); - } - if (msAbs >= h$1) { - return plural$1(ms, msAbs, h$1, 'hour'); - } - if (msAbs >= m$1) { - return plural$1(ms, msAbs, m$1, 'minute'); - } - if (msAbs >= s$1) { - return plural$1(ms, msAbs, s$1, 'second'); - } - return ms + ' ms'; - } - - /** - * Pluralization helper. - */ - - function plural$1(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); - } - - var lookup = []; - var revLookup = []; - var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; - var inited = false; - function init () { - inited = true; - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i]; - revLookup[code.charCodeAt(i)] = i; - } - - revLookup['-'.charCodeAt(0)] = 62; - revLookup['_'.charCodeAt(0)] = 63; - } - - function toByteArray (b64) { - if (!inited) { - init(); - } - var i, j, l, tmp, placeHolders, arr; - var len = b64.length; - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0; - - // base64 is 4/3 + up to two characters of the original data - arr = new Arr(len * 3 / 4 - placeHolders); - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len; - - var L = 0; - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]; - arr[L++] = (tmp >> 16) & 0xFF; - arr[L++] = (tmp >> 8) & 0xFF; - arr[L++] = tmp & 0xFF; - } - - if (placeHolders === 2) { - tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4); - arr[L++] = tmp & 0xFF; - } else if (placeHolders === 1) { - tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2); - arr[L++] = (tmp >> 8) & 0xFF; - arr[L++] = tmp & 0xFF; - } - - return arr - } - - function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] - } - - function encodeChunk (uint8, start, end) { - var tmp; - var output = []; - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]); - output.push(tripletToBase64(tmp)); - } - return output.join('') - } - - function fromByteArray (uint8) { - if (!inited) { - init(); - } - var tmp; - var len = uint8.length; - var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes - var output = ''; - var parts = []; - var maxChunkLength = 16383; // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))); - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1]; - output += lookup[tmp >> 2]; - output += lookup[(tmp << 4) & 0x3F]; - output += '=='; - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]); - output += lookup[tmp >> 10]; - output += lookup[(tmp >> 4) & 0x3F]; - output += lookup[(tmp << 2) & 0x3F]; - output += '='; - } - - parts.push(output); - - return parts.join('') - } - - function read (buffer, offset, isLE, mLen, nBytes) { - var e, m; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = -7; - var i = isLE ? (nBytes - 1) : 0; - var d = isLE ? -1 : 1; - var s = buffer[offset + i]; - - i += d; - - e = s & ((1 << (-nBits)) - 1); - s >>= (-nBits); - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1); - e >>= (-nBits); - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - function write (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0); - var i = isLE ? 0 : (nBytes - 1); - var d = isLE ? 1 : -1; - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128; - } - - var toString$1 = {}.toString; - - var isArray = Array.isArray || function (arr) { - return toString$1.call(arr) == '[object Array]'; - }; - - var INSPECT_MAX_BYTES = 50; - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ - Buffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined - ? global$1.TYPED_ARRAY_SUPPORT - : true; - - function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff - } - - function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length); - that.__proto__ = Buffer.prototype; - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer(length); - } - that.length = length; - } - - return that - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer (arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) - } - - Buffer.poolSize = 8192; // not used by this implementation - - // TODO: Legacy, not needed anymore. Remove in next major version. - Buffer._augment = function (arr) { - arr.__proto__ = Buffer.prototype; - return arr - }; - - function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) - }; - - if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype; - Buffer.__proto__ = Uint8Array; - } - - function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - } - - function alloc (that, size, fill, encoding) { - assertSize(size); - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) - }; - - function allocUnsafe (that, size) { - assertSize(size); - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0); - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0; - } - } - return that - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer.allocUnsafe = function (size) { - return allocUnsafe(null, size) - }; - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) - }; - - function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8'; - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0; - that = createBuffer(that, length); - - var actual = that.write(string, encoding); - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual); - } - - return that - } - - function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0; - that = createBuffer(that, length); - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255; - } - return that - } - - function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength; // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array); - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset); - } else { - array = new Uint8Array(array, byteOffset, length); - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array; - that.__proto__ = Buffer.prototype; - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array); - } - return that - } - - function fromObject (that, obj) { - if (internalIsBuffer(obj)) { - var len = checked(obj.length) | 0; - that = createBuffer(that, len); - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len); - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') - } - - function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 - } - Buffer.isBuffer = isBuffer; - function internalIsBuffer (b) { - return !!(b != null && b._isBuffer) - } - - Buffer.compare = function compare (a, b) { - if (!internalIsBuffer(a) || !internalIsBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length; - var y = b.length; - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i]; - y = b[i]; - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - }; - - Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - }; - - Buffer.concat = function concat (list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i; - if (length === undefined) { - length = 0; - for (i = 0; i < list.length; ++i) { - length += list[i].length; - } - } - - var buffer = Buffer.allocUnsafe(length); - var pos = 0; - for (i = 0; i < list.length; ++i) { - var buf = list[i]; - if (!internalIsBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos); - pos += buf.length; - } - return buffer - }; - - function byteLength (string, encoding) { - if (internalIsBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string; - } - - var len = string.length; - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false; - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase(); - loweredCase = true; - } - } - } - Buffer.byteLength = byteLength; - - function slowToString (encoding, start, end) { - var loweredCase = false; - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0; - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length; - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0; - start >>>= 0; - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8'; - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase(); - loweredCase = true; - } - } - } - - // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect - // Buffer instances. - Buffer.prototype._isBuffer = true; - - function swap (b, n, m) { - var i = b[n]; - b[n] = b[m]; - b[m] = i; - } - - Buffer.prototype.swap16 = function swap16 () { - var len = this.length; - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1); - } - return this - }; - - Buffer.prototype.swap32 = function swap32 () { - var len = this.length; - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3); - swap(this, i + 1, i + 2); - } - return this - }; - - Buffer.prototype.swap64 = function swap64 () { - var len = this.length; - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7); - swap(this, i + 1, i + 6); - swap(this, i + 2, i + 5); - swap(this, i + 3, i + 4); - } - return this - }; - - Buffer.prototype.toString = function toString () { - var length = this.length | 0; - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - }; - - Buffer.prototype.equals = function equals (b) { - if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - }; - - Buffer.prototype.inspect = function inspect () { - var str = ''; - var max = INSPECT_MAX_BYTES; - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' '); - if (this.length > max) str += ' ... '; - } - return '' - }; - - Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!internalIsBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0; - } - if (end === undefined) { - end = target ? target.length : 0; - } - if (thisStart === undefined) { - thisStart = 0; - } - if (thisEnd === undefined) { - thisEnd = this.length; - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0; - end >>>= 0; - thisStart >>>= 0; - thisEnd >>>= 0; - - if (this === target) return 0 - - var x = thisEnd - thisStart; - var y = end - start; - var len = Math.min(x, y); - - var thisCopy = this.slice(thisStart, thisEnd); - var targetCopy = target.slice(start, end); - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i]; - y = targetCopy[i]; - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - }; - - // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, - // OR the last index of `val` in `buffer` at offset <= `byteOffset`. - // - // Arguments: - // - buffer - a Buffer to search - // - val - a string, Buffer, or number - // - byteOffset - an index into `buffer`; will be clamped to an int32 - // - encoding - an optional encoding, relevant is val is a string - // - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset; - byteOffset = 0; - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff; - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000; - } - byteOffset = +byteOffset; // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1); - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset; - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1; - } else if (byteOffset < 0) { - if (dir) byteOffset = 0; - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding); - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (internalIsBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF; // Search for a byte value [0-255] - if (Buffer.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1; - var arrLength = arr.length; - var valLength = val.length; - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase(); - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2; - arrLength /= 2; - valLength /= 2; - byteOffset /= 2; - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i; - if (dir) { - var foundIndex = -1; - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i; - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex; - foundIndex = -1; - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; - for (i = byteOffset; i >= 0; i--) { - var found = true; - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false; - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - }; - - Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - }; - - Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - }; - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0; - var remaining = buf.length - offset; - if (!length) { - length = remaining; - } else { - length = Number(length); - if (length > remaining) { - length = remaining; - } - } - - // must be an even number of digits - var strLen = string.length; - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2; - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16); - if (isNaN(parsed)) return i - buf[offset + i] = parsed; - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8'; - length = this.length; - offset = 0; - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset; - length = this.length; - offset = 0; - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0; - if (isFinite(length)) { - length = length | 0; - if (encoding === undefined) encoding = 'utf8'; - } else { - encoding = length; - length = undefined; - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset; - if (length === undefined || length > remaining) length = remaining; - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8'; - - var loweredCase = false; - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase(); - loweredCase = true; - } - } - }; - - Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - }; - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return fromByteArray(buf) - } else { - return fromByteArray(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end); - var res = []; - - var i = start; - while (i < end) { - var firstByte = buf[i]; - var codePoint = null; - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1; - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint; - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte; - } - break - case 2: - secondByte = buf[i + 1]; - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F); - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint; - } - } - break - case 3: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F); - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint; - } - } - break - case 4: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - fourthByte = buf[i + 3]; - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F); - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint; - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD; - bytesPerSequence = 1; - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000; - res.push(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - - res.push(codePoint); - i += bytesPerSequence; - } - - return decodeCodePointsArray(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000; - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length; - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = ''; - var i = 0; - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ); - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = ''; - end = Math.min(buf.length, end); - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F); - } - return ret - } - - function latin1Slice (buf, start, end) { - var ret = ''; - end = Math.min(buf.length, end); - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]); - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length; - - if (!start || start < 0) start = 0; - if (!end || end < 0 || end > len) end = len; - - var out = ''; - for (var i = start; i < end; ++i) { - out += toHex(buf[i]); - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end); - var res = ''; - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); - } - return res - } - - Buffer.prototype.slice = function slice (start, end) { - var len = this.length; - start = ~~start; - end = end === undefined ? len : ~~end; - - if (start < 0) { - start += len; - if (start < 0) start = 0; - } else if (start > len) { - start = len; - } - - if (end < 0) { - end += len; - if (end < 0) end = 0; - } else if (end > len) { - end = len; - } - - if (end < start) end = start; - - var newBuf; - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end); - newBuf.__proto__ = Buffer.prototype; - } else { - var sliceLen = end - start; - newBuf = new Buffer(sliceLen, undefined); - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start]; - } - } - - return newBuf - }; - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset(offset, byteLength, this.length); - - var val = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul; - } - - return val - }; - - Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - checkOffset(offset, byteLength, this.length); - } - - var val = this[offset + --byteLength]; - var mul = 1; - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul; - } - - return val - }; - - Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length); - return this[offset] - }; - - Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - return this[offset] | (this[offset + 1] << 8) - }; - - Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - return (this[offset] << 8) | this[offset + 1] - }; - - Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - }; - - Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - }; - - Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset(offset, byteLength, this.length); - - var val = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul; - } - mul *= 0x80; - - if (val >= mul) val -= Math.pow(2, 8 * byteLength); - - return val - }; - - Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset(offset, byteLength, this.length); - - var i = byteLength; - var mul = 1; - var val = this[offset + --i]; - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul; - } - mul *= 0x80; - - if (val >= mul) val -= Math.pow(2, 8 * byteLength); - - return val - }; - - Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length); - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - }; - - Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - var val = this[offset] | (this[offset + 1] << 8); - return (val & 0x8000) ? val | 0xFFFF0000 : val - }; - - Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - var val = this[offset + 1] | (this[offset] << 8); - return (val & 0x8000) ? val | 0xFFFF0000 : val - }; - - Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - }; - - Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - }; - - Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - return read(this, offset, true, 23, 4) - }; - - Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - return read(this, offset, false, 23, 4) - }; - - Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length); - return read(this, offset, true, 52, 8) - }; - - Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length); - return read(this, offset, false, 52, 8) - }; - - function checkInt (buf, value, offset, ext, max, min) { - if (!internalIsBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1; - checkInt(this, value, offset, byteLength, maxBytes, 0); - } - - var mul = 1; - var i = 0; - this[offset] = value & 0xFF; - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF; - } - - return offset + byteLength - }; - - Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1; - checkInt(this, value, offset, byteLength, maxBytes, 0); - } - - var i = byteLength - 1; - var mul = 1; - this[offset + i] = value & 0xFF; - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF; - } - - return offset + byteLength - }; - - Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value); - this[offset] = (value & 0xff); - return offset + 1 - }; - - function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8; - } - } - - Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - } else { - objectWriteUInt16(this, value, offset, true); - } - return offset + 2 - }; - - Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8); - this[offset + 1] = (value & 0xff); - } else { - objectWriteUInt16(this, value, offset, false); - } - return offset + 2 - }; - - function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff; - } - } - - Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24); - this[offset + 2] = (value >>> 16); - this[offset + 1] = (value >>> 8); - this[offset] = (value & 0xff); - } else { - objectWriteUInt32(this, value, offset, true); - } - return offset + 4 - }; - - Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24); - this[offset + 1] = (value >>> 16); - this[offset + 2] = (value >>> 8); - this[offset + 3] = (value & 0xff); - } else { - objectWriteUInt32(this, value, offset, false); - } - return offset + 4 - }; - - Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1); - - checkInt(this, value, offset, byteLength, limit - 1, -limit); - } - - var i = 0; - var mul = 1; - var sub = 0; - this[offset] = value & 0xFF; - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1; - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; - } - - return offset + byteLength - }; - - Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1); - - checkInt(this, value, offset, byteLength, limit - 1, -limit); - } - - var i = byteLength - 1; - var mul = 1; - var sub = 0; - this[offset + i] = value & 0xFF; - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1; - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; - } - - return offset + byteLength - }; - - Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value); - if (value < 0) value = 0xff + value + 1; - this[offset] = (value & 0xff); - return offset + 1 - }; - - Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - } else { - objectWriteUInt16(this, value, offset, true); - } - return offset + 2 - }; - - Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8); - this[offset + 1] = (value & 0xff); - } else { - objectWriteUInt16(this, value, offset, false); - } - return offset + 2 - }; - - Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - this[offset + 2] = (value >>> 16); - this[offset + 3] = (value >>> 24); - } else { - objectWriteUInt32(this, value, offset, true); - } - return offset + 4 - }; - - Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); - if (value < 0) value = 0xffffffff + value + 1; - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24); - this[offset + 1] = (value >>> 16); - this[offset + 2] = (value >>> 8); - this[offset + 3] = (value & 0xff); - } else { - objectWriteUInt32(this, value, offset, false); - } - return offset + 4 - }; - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4); - } - write(buf, value, offset, littleEndian, 23, 4); - return offset + 4 - } - - Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - }; - - Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - }; - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8); - } - write(buf, value, offset, littleEndian, 52, 8); - return offset + 8 - } - - Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - }; - - Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - }; - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0; - if (!end && end !== 0) end = this.length; - if (targetStart >= target.length) targetStart = target.length; - if (!targetStart) targetStart = 0; - if (end > 0 && end < start) end = start; - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length; - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start; - } - - var len = end - start; - var i; - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start]; - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start]; - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ); - } - - return len - }; - - // Usage: - // buffer.fill(number[, offset[, end]]) - // buffer.fill(buffer[, offset[, end]]) - // buffer.fill(string[, offset[, end]][, encoding]) - Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start; - start = 0; - end = this.length; - } else if (typeof end === 'string') { - encoding = end; - end = this.length; - } - if (val.length === 1) { - var code = val.charCodeAt(0); - if (code < 256) { - val = code; - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255; - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0; - end = end === undefined ? this.length : end >>> 0; - - if (!val) val = 0; - - var i; - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val; - } - } else { - var bytes = internalIsBuffer(val) - ? val - : utf8ToBytes(new Buffer(val, encoding).toString()); - var len = bytes.length; - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len]; - } - } - - return this - }; - - // HELPER FUNCTIONS - // ================ - - var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g; - - function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, ''); - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '='; - } - return str - } - - function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity; - var codePoint; - var length = string.length; - var leadSurrogate = null; - var bytes = []; - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i); - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - continue - } - - // valid lead - leadSurrogate = codePoint; - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - leadSurrogate = codePoint; - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - } - - leadSurrogate = null; - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint); - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ); - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ); - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ); - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF); - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo; - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i); - hi = c >> 8; - lo = c % 256; - byteArray.push(lo); - byteArray.push(hi); - } - - return byteArray - } - - - function base64ToBytes (str) { - return toByteArray(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i]; - } - return i - } - - function isnan (val) { - return val !== val // eslint-disable-line no-self-compare - } - - - // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence - // The _isBuffer check is for Safari 5-7 support, because it's missing - // Object.prototype.constructor. Remove this eventually - function isBuffer(obj) { - return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj)) - } - - function isFastBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) - } - - // For Node v0.10 support. Remove this eventually. - function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0)) - } - - var browser$2 = true; - - var utils$3 = {}; - - let urlAlphabet = - 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'; - let customAlphabet = (alphabet, defaultSize = 21) => { - return (size = defaultSize) => { - let id = ''; - let i = size; - while (i--) { - id += alphabet[(Math.random() * alphabet.length) | 0]; - } - return id - } - }; - let nanoid = (size = 21) => { - let id = ''; - let i = size; - while (i--) { - id += urlAlphabet[(Math.random() * 64) | 0]; - } - return id - }; - var nonSecure = { nanoid, customAlphabet }; - - var he = {exports: {}}; - - /*! https://mths.be/he v1.2.0 by @mathias | MIT license */ - - (function (module, exports) { - (function(root) { - - // Detect free variables `exports`. - var freeExports = exports; - - // Detect free variable `module`. - var freeModule = module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root`. - var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - // All astral symbols. - var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - // All ASCII symbols (not just printable ASCII) except those listed in the - // first column of the overrides table. - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides - var regexAsciiWhitelist = /[\x01-\x7F]/g; - // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or - // code points listed in the first column of the overrides table on - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. - var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; - - var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; - var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; - - var regexEscape = /["&'<>`]/g; - var escapeMap = { - '"': '"', - '&': '&', - '\'': ''', - '<': '<', - // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the - // following is not strictly necessary unless it’s part of a tag or an - // unquoted attribute value. We’re only escaping it to support those - // situations, and for XML support. - '>': '>', - // In Internet Explorer ≤ 8, the backtick character can be used - // to break out of (un)quoted attribute values or HTML comments. - // See http://html5sec.org/#102, http://html5sec.org/#108, and - // http://html5sec.org/#133. - '`': '`' - }; - - var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; - var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g; - var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; - var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; - var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; - var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; - - /*--------------------------------------------------------------------------*/ - - var stringFromCharCode = String.fromCharCode; - - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var has = function(object, propertyName) { - return hasOwnProperty.call(object, propertyName); - }; - - var contains = function(array, value) { - var index = -1; - var length = array.length; - while (++index < length) { - if (array[index] == value) { - return true; - } - } - return false; - }; - - var merge = function(options, defaults) { - if (!options) { - return defaults; - } - var result = {}; - var key; - for (key in defaults) { - // A `hasOwnProperty` check is not needed here, since only recognized - // option names are used anyway. Any others are ignored. - result[key] = has(options, key) ? options[key] : defaults[key]; - } - return result; - }; - - // Modified version of `ucs2encode`; see https://mths.be/punycode. - var codePointToSymbol = function(codePoint, strict) { - var output = ''; - if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { - // See issue #4: - // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is - // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD - // REPLACEMENT CHARACTER.” - if (strict) { - parseError('character reference outside the permissible Unicode range'); - } - return '\uFFFD'; - } - if (has(decodeMapNumeric, codePoint)) { - if (strict) { - parseError('disallowed character reference'); - } - return decodeMapNumeric[codePoint]; - } - if (strict && contains(invalidReferenceCodePoints, codePoint)) { - parseError('disallowed character reference'); - } - if (codePoint > 0xFFFF) { - codePoint -= 0x10000; - output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - output += stringFromCharCode(codePoint); - return output; - }; - - var hexEscape = function(codePoint) { - return '&#x' + codePoint.toString(16).toUpperCase() + ';'; - }; - - var decEscape = function(codePoint) { - return '&#' + codePoint + ';'; - }; - - var parseError = function(message) { - throw Error('Parse error: ' + message); - }; - - /*--------------------------------------------------------------------------*/ - - var encode = function(string, options) { - options = merge(options, encode.options); - var strict = options.strict; - if (strict && regexInvalidRawCodePoint.test(string)) { - parseError('forbidden code point'); - } - var encodeEverything = options.encodeEverything; - var useNamedReferences = options.useNamedReferences; - var allowUnsafeSymbols = options.allowUnsafeSymbols; - var escapeCodePoint = options.decimal ? decEscape : hexEscape; - - var escapeBmpSymbol = function(symbol) { - return escapeCodePoint(symbol.charCodeAt(0)); - }; - - if (encodeEverything) { - // Encode ASCII symbols. - string = string.replace(regexAsciiWhitelist, function(symbol) { - // Use named references if requested & possible. - if (useNamedReferences && has(encodeMap, symbol)) { - return '&' + encodeMap[symbol] + ';'; - } - return escapeBmpSymbol(symbol); - }); - // Shorten a few escapes that represent two symbols, of which at least one - // is within the ASCII range. - if (useNamedReferences) { - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒') - .replace(/fj/g, 'fj'); - } - // Encode non-ASCII symbols. - if (useNamedReferences) { - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } - // Note: any remaining non-ASCII symbols are handled outside of the `if`. - } else if (useNamedReferences) { - // Apply named character references. - // Encode `<>"'&` using named character references. - if (!allowUnsafeSymbols) { - string = string.replace(regexEscape, function(string) { - return '&' + encodeMap[string] + ';'; // no need to check `has()` here - }); - } - // Shorten escapes that represent two symbols, of which at least one is - // `<>"'&`. - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒'); - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } else if (!allowUnsafeSymbols) { - // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled - // using named character references. - string = string.replace(regexEscape, escapeBmpSymbol); - } - return string - // Encode astral symbols. - .replace(regexAstralSymbols, function($0) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - var high = $0.charCodeAt(0); - var low = $0.charCodeAt(1); - var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; - return escapeCodePoint(codePoint); - }) - // Encode any remaining BMP symbols that are not printable ASCII symbols - // using a hexadecimal escape. - .replace(regexBmpWhitelist, escapeBmpSymbol); - }; - // Expose default options (so they can be overridden globally). - encode.options = { - 'allowUnsafeSymbols': false, - 'encodeEverything': false, - 'strict': false, - 'useNamedReferences': false, - 'decimal' : false - }; - - var decode = function(html, options) { - options = merge(options, decode.options); - var strict = options.strict; - if (strict && regexInvalidEntity.test(html)) { - parseError('malformed character reference'); - } - return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) { - var codePoint; - var semicolon; - var decDigits; - var hexDigits; - var reference; - var next; - - if ($1) { - reference = $1; - // Note: there is no need to check `has(decodeMap, reference)`. - return decodeMap[reference]; - } - - if ($2) { - // Decode named character references without trailing `;`, e.g. `&`. - // This is only a parse error if it gets converted to `&`, or if it is - // followed by `=` in an attribute context. - reference = $2; - next = $3; - if (next && options.isAttributeValue) { - if (strict && next == '=') { - parseError('`&` did not start a character reference'); - } - return $0; - } else { - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - // Note: there is no need to check `has(decodeMapLegacy, reference)`. - return decodeMapLegacy[reference] + (next || ''); - } - } - - if ($4) { - // Decode decimal escapes, e.g. `𝌆`. - decDigits = $4; - semicolon = $5; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(decDigits, 10); - return codePointToSymbol(codePoint, strict); - } - - if ($6) { - // Decode hexadecimal escapes, e.g. `𝌆`. - hexDigits = $6; - semicolon = $7; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(hexDigits, 16); - return codePointToSymbol(codePoint, strict); - } - - // If we’re still here, `if ($7)` is implied; it’s an ambiguous - // ampersand for sure. https://mths.be/notes/ambiguous-ampersands - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - return $0; - }); - }; - // Expose default options (so they can be overridden globally). - decode.options = { - 'isAttributeValue': false, - 'strict': false - }; - - var escape = function(string) { - return string.replace(regexEscape, function($0) { - // Note: there is no need to check `has(escapeMap, $0)` here. - return escapeMap[$0]; - }); - }; - - /*--------------------------------------------------------------------------*/ - - var he = { - 'version': '1.2.0', - 'encode': encode, - 'decode': decode, - 'escape': escape, - 'unescape': decode - }; - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = he; - } else { // in Narwhal or RingoJS v0.7.0- - for (var key in he) { - has(he, key) && (freeExports[key] = he[key]); - } - } - } else { // in Rhino or a web browser - root.he = he; - } - - }(commonjsGlobal)); - }(he, he.exports)); - - (function (exports) { - - /** - * Various utility functions used throughout Mocha's codebase. - * @module utils - */ - - /** - * Module dependencies. - */ - - const {nanoid} = nonSecure; - var path = require$$1; - var util = require$$0$1; - var he$1 = he.exports; - - const MOCHA_ID_PROP_NAME = '__mocha_id__'; - - /** - * Inherit the prototype methods from one constructor into another. - * - * @param {function} ctor - Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor - Constructor function to inherit prototype from. - * @throws {TypeError} if either constructor is null, or if super constructor - * lacks a prototype. - */ - exports.inherits = util.inherits; - - /** - * Escape special characters in the given string of html. - * - * @private - * @param {string} html - * @return {string} - */ - exports.escape = function (html) { - return he$1.encode(String(html), {useNamedReferences: false}); - }; - - /** - * Test if the given obj is type of string. - * - * @private - * @param {Object} obj - * @return {boolean} - */ - exports.isString = function (obj) { - return typeof obj === 'string'; - }; - - /** - * Compute a slug from the given `str`. - * - * @private - * @param {string} str - * @return {string} - */ - exports.slug = function (str) { - return str - .toLowerCase() - .replace(/\s+/g, '-') - .replace(/[^-\w]/g, '') - .replace(/-{2,}/g, '-'); - }; - - /** - * Strip the function definition from `str`, and re-indent for pre whitespace. - * - * @param {string} str - * @return {string} - */ - exports.clean = function (str) { - str = str - .replace(/\r\n?|[\n\u2028\u2029]/g, '\n') - .replace(/^\uFEFF/, '') - // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content - .replace( - /^function(?:\s*|\s[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\}|((?:.|\n)*))$/, - '$1$2$3' - ); - - var spaces = str.match(/^\n?( *)/)[1].length; - var tabs = str.match(/^\n?(\t*)/)[1].length; - var re = new RegExp( - '^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs || spaces) + '}', - 'gm' - ); - - str = str.replace(re, ''); - - return str.trim(); - }; - - /** - * If a value could have properties, and has none, this function is called, - * which returns a string representation of the empty value. - * - * Functions w/ no properties return `'[Function]'` - * Arrays w/ length === 0 return `'[]'` - * Objects w/ no properties return `'{}'` - * All else: return result of `value.toString()` - * - * @private - * @param {*} value The value to inspect. - * @param {string} typeHint The type of the value - * @returns {string} - */ - function emptyRepresentation(value, typeHint) { - switch (typeHint) { - case 'function': - return '[Function]'; - case 'object': - return '{}'; - case 'array': - return '[]'; - default: - return value.toString(); - } - } - - /** - * Takes some variable and asks `Object.prototype.toString()` what it thinks it - * is. - * - * @private - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString - * @param {*} value The value to test. - * @returns {string} Computed type - * @example - * canonicalType({}) // 'object' - * canonicalType([]) // 'array' - * canonicalType(1) // 'number' - * canonicalType(false) // 'boolean' - * canonicalType(Infinity) // 'number' - * canonicalType(null) // 'null' - * canonicalType(new Date()) // 'date' - * canonicalType(/foo/) // 'regexp' - * canonicalType('type') // 'string' - * canonicalType(global) // 'global' - * canonicalType(new String('foo') // 'object' - * canonicalType(async function() {}) // 'asyncfunction' - * canonicalType(await import(name)) // 'module' - */ - var canonicalType = (exports.canonicalType = function canonicalType(value) { - if (value === undefined) { - return 'undefined'; - } else if (value === null) { - return 'null'; - } else if (isBuffer(value)) { - return 'buffer'; - } - return Object.prototype.toString - .call(value) - .replace(/^\[.+\s(.+?)]$/, '$1') - .toLowerCase(); - }); - - /** - * - * Returns a general type or data structure of a variable - * @private - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures - * @param {*} value The value to test. - * @returns {string} One of undefined, boolean, number, string, bigint, symbol, object - * @example - * type({}) // 'object' - * type([]) // 'array' - * type(1) // 'number' - * type(false) // 'boolean' - * type(Infinity) // 'number' - * type(null) // 'null' - * type(new Date()) // 'object' - * type(/foo/) // 'object' - * type('type') // 'string' - * type(global) // 'object' - * type(new String('foo') // 'string' - */ - exports.type = function type(value) { - // Null is special - if (value === null) return 'null'; - const primitives = new Set([ - 'undefined', - 'boolean', - 'number', - 'string', - 'bigint', - 'symbol' - ]); - const _type = typeof value; - if (_type === 'function') return _type; - if (primitives.has(_type)) return _type; - if (value instanceof String) return 'string'; - if (value instanceof Error) return 'error'; - if (Array.isArray(value)) return 'array'; - - return _type; - }; - - /** - * Stringify `value`. Different behavior depending on type of value: - * - * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively. - * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes. - * - If `value` is an *empty* object, function, or array, return result of function - * {@link emptyRepresentation}. - * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of - * JSON.stringify(). - * - * @private - * @see exports.type - * @param {*} value - * @return {string} - */ - exports.stringify = function (value) { - var typeHint = canonicalType(value); - - if (!~['object', 'array', 'function'].indexOf(typeHint)) { - if (typeHint === 'buffer') { - var json = Buffer.prototype.toJSON.call(value); - // Based on the toJSON result - return jsonStringify( - json.data && json.type ? json.data : json, - 2 - ).replace(/,(\n|$)/g, '$1'); - } - - // IE7/IE8 has a bizarre String constructor; needs to be coerced - // into an array and back to obj. - if (typeHint === 'string' && typeof value === 'object') { - value = value.split('').reduce(function (acc, char, idx) { - acc[idx] = char; - return acc; - }, {}); - typeHint = 'object'; - } else { - return jsonStringify(value); - } - } - - for (var prop in value) { - if (Object.prototype.hasOwnProperty.call(value, prop)) { - return jsonStringify( - exports.canonicalize(value, null, typeHint), - 2 - ).replace(/,(\n|$)/g, '$1'); - } - } - - return emptyRepresentation(value, typeHint); - }; - - /** - * like JSON.stringify but more sense. - * - * @private - * @param {Object} object - * @param {number=} spaces - * @param {number=} depth - * @returns {*} - */ - function jsonStringify(object, spaces, depth) { - if (typeof spaces === 'undefined') { - // primitive types - return _stringify(object); - } - - depth = depth || 1; - var space = spaces * depth; - var str = Array.isArray(object) ? '[' : '{'; - var end = Array.isArray(object) ? ']' : '}'; - var length = - typeof object.length === 'number' - ? object.length - : Object.keys(object).length; - // `.repeat()` polyfill - function repeat(s, n) { - return new Array(n).join(s); - } - - function _stringify(val) { - switch (canonicalType(val)) { - case 'null': - case 'undefined': - val = '[' + val + ']'; - break; - case 'array': - case 'object': - val = jsonStringify(val, spaces, depth + 1); - break; - case 'boolean': - case 'regexp': - case 'symbol': - case 'number': - val = - val === 0 && 1 / val === -Infinity // `-0` - ? '-0' - : val.toString(); - break; - case 'bigint': - val = val.toString() + 'n'; - break; - case 'date': - var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString(); - val = '[Date: ' + sDate + ']'; - break; - case 'buffer': - var json = val.toJSON(); - // Based on the toJSON result - json = json.data && json.type ? json.data : json; - val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']'; - break; - default: - val = - val === '[Function]' || val === '[Circular]' - ? val - : JSON.stringify(val); // string - } - return val; - } - - for (var i in object) { - if (!Object.prototype.hasOwnProperty.call(object, i)) { - continue; // not my business - } - --length; - str += - '\n ' + - repeat(' ', space) + - (Array.isArray(object) ? '' : '"' + i + '": ') + // key - _stringify(object[i]) + // value - (length ? ',' : ''); // comma - } - - return ( - str + - // [], {} - (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end) - ); - } - - /** - * Return a new Thing that has the keys in sorted order. Recursive. - * - * If the Thing... - * - has already been seen, return string `'[Circular]'` - * - is `undefined`, return string `'[undefined]'` - * - is `null`, return value `null` - * - is some other primitive, return the value - * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method - * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again. - * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()` - * - * @private - * @see {@link exports.stringify} - * @param {*} value Thing to inspect. May or may not have properties. - * @param {Array} [stack=[]] Stack of seen values - * @param {string} [typeHint] Type hint - * @return {(Object|Array|Function|string|undefined)} - */ - exports.canonicalize = function canonicalize(value, stack, typeHint) { - var canonicalizedObj; - /* eslint-disable no-unused-vars */ - var prop; - /* eslint-enable no-unused-vars */ - typeHint = typeHint || canonicalType(value); - function withStack(value, fn) { - stack.push(value); - fn(); - stack.pop(); - } - - stack = stack || []; - - if (stack.indexOf(value) !== -1) { - return '[Circular]'; - } - - switch (typeHint) { - case 'undefined': - case 'buffer': - case 'null': - canonicalizedObj = value; - break; - case 'array': - withStack(value, function () { - canonicalizedObj = value.map(function (item) { - return exports.canonicalize(item, stack); - }); - }); - break; - case 'function': - /* eslint-disable-next-line no-unused-vars, no-unreachable-loop */ - for (prop in value) { - canonicalizedObj = {}; - break; - } - /* eslint-enable guard-for-in */ - if (!canonicalizedObj) { - canonicalizedObj = emptyRepresentation(value, typeHint); - break; - } - /* falls through */ - case 'object': - canonicalizedObj = canonicalizedObj || {}; - withStack(value, function () { - Object.keys(value) - .sort() - .forEach(function (key) { - canonicalizedObj[key] = exports.canonicalize(value[key], stack); - }); - }); - break; - case 'date': - case 'number': - case 'regexp': - case 'boolean': - case 'symbol': - canonicalizedObj = value; - break; - default: - canonicalizedObj = value + ''; - } - - return canonicalizedObj; - }; - - /** - * @summary - * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`) - * @description - * When invoking this function you get a filter function that get the Error.stack as an input, - * and return a prettify output. - * (i.e: strip Mocha and internal node functions from stack trace). - * @returns {Function} - */ - exports.stackTraceFilter = function () { - // TODO: Replace with `process.browser` - var is = typeof document === 'undefined' ? {node: true} : {browser: true}; - var slash = path.sep; - var cwd; - if (is.node) { - cwd = exports.cwd() + slash; - } else { - cwd = ( - typeof location === 'undefined' ? window.location : location - ).href.replace(/\/[^/]*$/, '/'); - slash = '/'; - } - - function isMochaInternal(line) { - return ( - ~line.indexOf('node_modules' + slash + 'mocha' + slash) || - ~line.indexOf(slash + 'mocha.js') || - ~line.indexOf(slash + 'mocha.min.js') - ); - } - - function isNodeInternal(line) { - return ( - ~line.indexOf('(timers.js:') || - ~line.indexOf('(events.js:') || - ~line.indexOf('(node.js:') || - ~line.indexOf('(module.js:') || - ~line.indexOf('GeneratorFunctionPrototype.next (native)') || - false - ); - } - - return function (stack) { - stack = stack.split('\n'); - - stack = stack.reduce(function (list, line) { - if (isMochaInternal(line)) { - return list; - } - - if (is.node && isNodeInternal(line)) { - return list; - } - - // Clean up cwd(absolute) - if (/:\d+:\d+\)?$/.test(line)) { - line = line.replace('(' + cwd, '('); - } - - list.push(line); - return list; - }, []); - - return stack.join('\n'); - }; - }; - - /** - * Crude, but effective. - * @public - * @param {*} value - * @returns {boolean} Whether or not `value` is a Promise - */ - exports.isPromise = function isPromise(value) { - return ( - typeof value === 'object' && - value !== null && - typeof value.then === 'function' - ); - }; - - /** - * Clamps a numeric value to an inclusive range. - * - * @param {number} value - Value to be clamped. - * @param {number[]} range - Two element array specifying [min, max] range. - * @returns {number} clamped value - */ - exports.clamp = function clamp(value, range) { - return Math.min(Math.max(value, range[0]), range[1]); - }; - - /** - * It's a noop. - * @public - */ - exports.noop = function () {}; - - /** - * Creates a map-like object. - * - * @description - * A "map" is an object with no prototype, for our purposes. In some cases - * this would be more appropriate than a `Map`, especially if your environment - * doesn't support it. Recommended for use in Mocha's public APIs. - * - * @public - * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Custom_and_Null_objects|MDN:Map} - * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Custom_and_Null_objects|MDN:Object.create - Custom objects} - * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Custom_and_Null_objects|MDN:Object.assign} - * @param {...*} [obj] - Arguments to `Object.assign()`. - * @returns {Object} An object with no prototype, having `...obj` properties - */ - exports.createMap = function (obj) { - return Object.assign.apply( - null, - [Object.create(null)].concat(Array.prototype.slice.call(arguments)) - ); - }; - - /** - * Creates a read-only map-like object. - * - * @description - * This differs from {@link module:utils.createMap createMap} only in that - * the argument must be non-empty, because the result is frozen. - * - * @see {@link module:utils.createMap createMap} - * @param {...*} [obj] - Arguments to `Object.assign()`. - * @returns {Object} A frozen object with no prototype, having `...obj` properties - * @throws {TypeError} if argument is not a non-empty object. - */ - exports.defineConstants = function (obj) { - if (canonicalType(obj) !== 'object' || !Object.keys(obj).length) { - throw new TypeError('Invalid argument; expected a non-empty object'); - } - return Object.freeze(exports.createMap(obj)); - }; - - /** - * Returns current working directory - * - * Wrapper around `process.cwd()` for isolation - * @private - */ - exports.cwd = function cwd() { - return process.cwd(); - }; - - /** - * Returns `true` if Mocha is running in a browser. - * Checks for `process.browser`. - * @returns {boolean} - * @private - */ - exports.isBrowser = function isBrowser() { - return Boolean(browser$2); - }; - - /* - * Casts `value` to an array; useful for optionally accepting array parameters - * - * It follows these rules, depending on `value`. If `value` is... - * 1. `undefined`: return an empty Array - * 2. `null`: return an array with a single `null` element - * 3. Any other object: return the value of `Array.from()` _if_ the object is iterable - * 4. otherwise: return an array with a single element, `value` - * @param {*} value - Something to cast to an Array - * @returns {Array<*>} - */ - exports.castArray = function castArray(value) { - if (value === undefined) { - return []; - } - if (value === null) { - return [null]; - } - if ( - typeof value === 'object' && - (typeof value[Symbol.iterator] === 'function' || value.length !== undefined) - ) { - return Array.from(value); - } - return [value]; - }; - - exports.constants = exports.defineConstants({ - MOCHA_ID_PROP_NAME - }); - - /** - * Creates a new unique identifier - * @returns {string} Unique identifier - */ - exports.uniqueID = () => nanoid(); - - exports.assignNewMochaID = obj => { - const id = exports.uniqueID(); - Object.defineProperty(obj, MOCHA_ID_PROP_NAME, { - get() { - return id; - } - }); - return obj; - }; - - /** - * Retrieves a Mocha ID from an object, if present. - * @param {*} [obj] - Object - * @returns {string|void} - */ - exports.getMochaID = obj => - obj && typeof obj === 'object' ? obj[MOCHA_ID_PROP_NAME] : undefined; - }(utils$3)); - - var _nodeResolve_empty = {}; - - var _nodeResolve_empty$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': _nodeResolve_empty - }); - - var require$$18 = /*@__PURE__*/getAugmentedNamespace(_nodeResolve_empty$1); - - var browser$1 = { - info: 'ℹ️', - success: '✅', - warning: '⚠️', - error: '❌️' - }; - - var require$$0 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_events); - - /** - @module Pending - */ - - var pending = Pending$2; - - /** - * Initialize a new `Pending` error with the given message. - * - * @param {string} message - */ - function Pending$2(message) { - this.message = message; - } - - var browser = {exports: {}}; - - /** - * Helpers. - */ - - var s = 1000; - var m = s * 60; - var h = m * 60; - var d = h * 24; - var w = d * 7; - var y = d * 365.25; - - /** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - - var ms = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); - }; - - /** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - - function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } - } - - /** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - - function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; - } - - /** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - - function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; - } - - /** - * Pluralization helper. - */ - - function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); - } - - /** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ - - function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = ms; - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - - createDebug.names = []; - createDebug.skips = []; - - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } - - namespaces = split[i].replace(/\*/g, '.*?'); - - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - - let i; - let len; - - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - - return false; - } - - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; - } - - var common$1 = setup; - - (function (module, exports) { - /** - * This is the web browser implementation of `debug()`. - */ - - exports.formatArgs = formatArgs; - exports.save = save; - exports.load = load; - exports.useColors = useColors; - exports.storage = localstorage(); - exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; - })(); - - /** - * Colors. - */ - - exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' - ]; - - /** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - - // eslint-disable-next-line complexity - function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); - } - - /** - * Colorize log arguments if enabled. - * - * @api public - */ - - function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - } - - /** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ - exports.log = console.debug || console.log || (() => {}); - - /** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - } - - /** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; - } - - /** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - - function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - } - - module.exports = common$1(exports); - - const {formatters} = module.exports; - - /** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - - formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } - }; - }(browser, browser.exports)); - - const {format} = require$$0$1; - - /** - * Contains error codes, factory functions to create throwable error objects, - * and warning/deprecation functions. - * @module - */ - - /** - * process.emitWarning or a polyfill - * @see https://nodejs.org/api/process.html#process_process_emitwarning_warning_options - * @ignore - */ - const emitWarning = (msg, type) => { - if (process.emitWarning) { - process.emitWarning(msg, type); - } else { - /* istanbul ignore next */ - nextTick$1(function () { - console.warn(type + ': ' + msg); - }); - } - }; - - /** - * Show a deprecation warning. Each distinct message is only displayed once. - * Ignores empty messages. - * - * @param {string} [msg] - Warning to print - * @private - */ - const deprecate = msg => { - msg = String(msg); - if (msg && !deprecate.cache[msg]) { - deprecate.cache[msg] = true; - emitWarning(msg, 'DeprecationWarning'); - } - }; - deprecate.cache = {}; - - /** - * Show a generic warning. - * Ignores empty messages. - * - * @param {string} [msg] - Warning to print - * @private - */ - const warn = msg => { - if (msg) { - emitWarning(msg); - } - }; - - /** - * When Mocha throws exceptions (or rejects `Promise`s), it attempts to assign a `code` property to the `Error` object, for easier handling. These are the potential values of `code`. - * @public - * @namespace - * @memberof module:lib/errors - */ - var constants$4 = { - /** - * An unrecoverable error. - * @constant - * @default - */ - FATAL: 'ERR_MOCHA_FATAL', - - /** - * The type of an argument to a function call is invalid - * @constant - * @default - */ - INVALID_ARG_TYPE: 'ERR_MOCHA_INVALID_ARG_TYPE', - - /** - * The value of an argument to a function call is invalid - * @constant - * @default - */ - INVALID_ARG_VALUE: 'ERR_MOCHA_INVALID_ARG_VALUE', - - /** - * Something was thrown, but it wasn't an `Error` - * @constant - * @default - */ - INVALID_EXCEPTION: 'ERR_MOCHA_INVALID_EXCEPTION', - - /** - * An interface (e.g., `Mocha.interfaces`) is unknown or invalid - * @constant - * @default - */ - INVALID_INTERFACE: 'ERR_MOCHA_INVALID_INTERFACE', - - /** - * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid - * @constant - * @default - */ - INVALID_REPORTER: 'ERR_MOCHA_INVALID_REPORTER', - - /** - * `done()` was called twice in a `Test` or `Hook` callback - * @constant - * @default - */ - MULTIPLE_DONE: 'ERR_MOCHA_MULTIPLE_DONE', - - /** - * No files matched the pattern provided by the user - * @constant - * @default - */ - NO_FILES_MATCH_PATTERN: 'ERR_MOCHA_NO_FILES_MATCH_PATTERN', - - /** - * Known, but unsupported behavior of some kind - * @constant - * @default - */ - UNSUPPORTED: 'ERR_MOCHA_UNSUPPORTED', - - /** - * Invalid state transition occurring in `Mocha` instance - * @constant - * @default - */ - INSTANCE_ALREADY_RUNNING: 'ERR_MOCHA_INSTANCE_ALREADY_RUNNING', - - /** - * Invalid state transition occurring in `Mocha` instance - * @constant - * @default - */ - INSTANCE_ALREADY_DISPOSED: 'ERR_MOCHA_INSTANCE_ALREADY_DISPOSED', - - /** - * Use of `only()` w/ `--forbid-only` results in this error. - * @constant - * @default - */ - FORBIDDEN_EXCLUSIVITY: 'ERR_MOCHA_FORBIDDEN_EXCLUSIVITY', - - /** - * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid - * @constant - * @default - */ - INVALID_PLUGIN_IMPLEMENTATION: 'ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION', - - /** - * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid - * @constant - * @default - */ - INVALID_PLUGIN_DEFINITION: 'ERR_MOCHA_INVALID_PLUGIN_DEFINITION', - - /** - * When a runnable exceeds its allowed run time. - * @constant - * @default - */ - TIMEOUT: 'ERR_MOCHA_TIMEOUT', - - /** - * Input file is not able to be parsed - * @constant - * @default - */ - UNPARSABLE_FILE: 'ERR_MOCHA_UNPARSABLE_FILE' - }; - - /** - * A set containing all string values of all Mocha error constants, for use by {@link isMochaError}. - * @private - */ - const MOCHA_ERRORS = new Set(Object.values(constants$4)); - - /** - * Creates an error object to be thrown when no files to be tested could be found using specified pattern. - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @param {string} pattern - User-specified argument value. - * @returns {Error} instance detailing the error condition - */ - function createNoFilesMatchPatternError(message, pattern) { - var err = new Error(message); - err.code = constants$4.NO_FILES_MATCH_PATTERN; - err.pattern = pattern; - return err; - } - - /** - * Creates an error object to be thrown when the reporter specified in the options was not found. - * - * @public - * @param {string} message - Error message to be displayed. - * @param {string} reporter - User-specified reporter value. - * @returns {Error} instance detailing the error condition - */ - function createInvalidReporterError(message, reporter) { - var err = new TypeError(message); - err.code = constants$4.INVALID_REPORTER; - err.reporter = reporter; - return err; - } - - /** - * Creates an error object to be thrown when the interface specified in the options was not found. - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @param {string} ui - User-specified interface value. - * @returns {Error} instance detailing the error condition - */ - function createInvalidInterfaceError(message, ui) { - var err = new Error(message); - err.code = constants$4.INVALID_INTERFACE; - err.interface = ui; - return err; - } - - /** - * Creates an error object to be thrown when a behavior, option, or parameter is unsupported. - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @returns {Error} instance detailing the error condition - */ - function createUnsupportedError$2(message) { - var err = new Error(message); - err.code = constants$4.UNSUPPORTED; - return err; - } - - /** - * Creates an error object to be thrown when an argument is missing. - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @param {string} argument - Argument name. - * @param {string} expected - Expected argument datatype. - * @returns {Error} instance detailing the error condition - */ - function createMissingArgumentError$1(message, argument, expected) { - return createInvalidArgumentTypeError$1(message, argument, expected); - } - - /** - * Creates an error object to be thrown when an argument did not use the supported type - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @param {string} argument - Argument name. - * @param {string} expected - Expected argument datatype. - * @returns {Error} instance detailing the error condition - */ - function createInvalidArgumentTypeError$1(message, argument, expected) { - var err = new TypeError(message); - err.code = constants$4.INVALID_ARG_TYPE; - err.argument = argument; - err.expected = expected; - err.actual = typeof argument; - return err; - } - - /** - * Creates an error object to be thrown when an argument did not use the supported value - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @param {string} argument - Argument name. - * @param {string} value - Argument value. - * @param {string} [reason] - Why value is invalid. - * @returns {Error} instance detailing the error condition - */ - function createInvalidArgumentValueError(message, argument, value, reason) { - var err = new TypeError(message); - err.code = constants$4.INVALID_ARG_VALUE; - err.argument = argument; - err.value = value; - err.reason = typeof reason !== 'undefined' ? reason : 'is invalid'; - return err; - } - - /** - * Creates an error object to be thrown when an exception was caught, but the `Error` is falsy or undefined. - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @returns {Error} instance detailing the error condition - */ - function createInvalidExceptionError$2(message, value) { - var err = new Error(message); - err.code = constants$4.INVALID_EXCEPTION; - err.valueType = typeof value; - err.value = value; - return err; - } - - /** - * Creates an error object to be thrown when an unrecoverable error occurs. - * - * @public - * @static - * @param {string} message - Error message to be displayed. - * @returns {Error} instance detailing the error condition - */ - function createFatalError$1(message, value) { - var err = new Error(message); - err.code = constants$4.FATAL; - err.valueType = typeof value; - err.value = value; - return err; - } - - /** - * Dynamically creates a plugin-type-specific error based on plugin type - * @param {string} message - Error message - * @param {"reporter"|"ui"} pluginType - Plugin type. Future: expand as needed - * @param {string} [pluginId] - Name/path of plugin, if any - * @throws When `pluginType` is not known - * @public - * @static - * @returns {Error} - */ - function createInvalidLegacyPluginError(message, pluginType, pluginId) { - switch (pluginType) { - case 'reporter': - return createInvalidReporterError(message, pluginId); - case 'ui': - return createInvalidInterfaceError(message, pluginId); - default: - throw new Error('unknown pluginType "' + pluginType + '"'); - } - } - - /** - * **DEPRECATED**. Use {@link createInvalidLegacyPluginError} instead Dynamically creates a plugin-type-specific error based on plugin type - * @deprecated - * @param {string} message - Error message - * @param {"reporter"|"interface"} pluginType - Plugin type. Future: expand as needed - * @param {string} [pluginId] - Name/path of plugin, if any - * @throws When `pluginType` is not known - * @public - * @static - * @returns {Error} - */ - function createInvalidPluginError(...args) { - deprecate('Use createInvalidLegacyPluginError() instead'); - return createInvalidLegacyPluginError(...args); - } - - /** - * Creates an error object to be thrown when a mocha object's `run` method is executed while it is already disposed. - * @param {string} message The error message to be displayed. - * @param {boolean} cleanReferencesAfterRun the value of `cleanReferencesAfterRun` - * @param {Mocha} instance the mocha instance that throw this error - * @static - */ - function createMochaInstanceAlreadyDisposedError( - message, - cleanReferencesAfterRun, - instance - ) { - var err = new Error(message); - err.code = constants$4.INSTANCE_ALREADY_DISPOSED; - err.cleanReferencesAfterRun = cleanReferencesAfterRun; - err.instance = instance; - return err; - } - - /** - * Creates an error object to be thrown when a mocha object's `run` method is called while a test run is in progress. - * @param {string} message The error message to be displayed. - * @static - * @public - */ - function createMochaInstanceAlreadyRunningError(message, instance) { - var err = new Error(message); - err.code = constants$4.INSTANCE_ALREADY_RUNNING; - err.instance = instance; - return err; - } - - /** - * Creates an error object to be thrown when done() is called multiple times in a test - * - * @public - * @param {Runnable} runnable - Original runnable - * @param {Error} [originalErr] - Original error, if any - * @returns {Error} instance detailing the error condition - * @static - */ - function createMultipleDoneError$1(runnable, originalErr) { - var title; - try { - title = format('<%s>', runnable.fullTitle()); - if (runnable.parent.root) { - title += ' (of root suite)'; - } - } catch (ignored) { - title = format('<%s> (of unknown suite)', runnable.title); - } - var message = format( - 'done() called multiple times in %s %s', - runnable.type ? runnable.type : 'unknown runnable', - title - ); - if (runnable.file) { - message += format(' of file %s', runnable.file); - } - if (originalErr) { - message += format('; in addition, done() received error: %s', originalErr); - } - - var err = new Error(message); - err.code = constants$4.MULTIPLE_DONE; - err.valueType = typeof originalErr; - err.value = originalErr; - return err; - } - - /** - * Creates an error object to be thrown when `.only()` is used with - * `--forbid-only`. - * @static - * @public - * @param {Mocha} mocha - Mocha instance - * @returns {Error} Error with code {@link constants.FORBIDDEN_EXCLUSIVITY} - */ - function createForbiddenExclusivityError$1(mocha) { - var err = new Error( - mocha.isWorker - ? '`.only` is not supported in parallel mode' - : '`.only` forbidden by --forbid-only' - ); - err.code = constants$4.FORBIDDEN_EXCLUSIVITY; - return err; - } - - /** - * Creates an error object to be thrown when a plugin definition is invalid - * @static - * @param {string} msg - Error message - * @param {PluginDefinition} [pluginDef] - Problematic plugin definition - * @public - * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION} - */ - function createInvalidPluginDefinitionError(msg, pluginDef) { - const err = new Error(msg); - err.code = constants$4.INVALID_PLUGIN_DEFINITION; - err.pluginDef = pluginDef; - return err; - } - - /** - * Creates an error object to be thrown when a plugin implementation (user code) is invalid - * @static - * @param {string} msg - Error message - * @param {Object} [opts] - Plugin definition and user-supplied implementation - * @param {PluginDefinition} [opts.pluginDef] - Plugin Definition - * @param {*} [opts.pluginImpl] - Plugin Implementation (user-supplied) - * @public - * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION} - */ - function createInvalidPluginImplementationError( - msg, - {pluginDef, pluginImpl} = {} - ) { - const err = new Error(msg); - err.code = constants$4.INVALID_PLUGIN_IMPLEMENTATION; - err.pluginDef = pluginDef; - err.pluginImpl = pluginImpl; - return err; - } - - /** - * Creates an error object to be thrown when a runnable exceeds its allowed run time. - * @static - * @param {string} msg - Error message - * @param {number} [timeout] - Timeout in ms - * @param {string} [file] - File, if given - * @returns {MochaTimeoutError} - */ - function createTimeoutError$1(msg, timeout, file) { - const err = new Error(msg); - err.code = constants$4.TIMEOUT; - err.timeout = timeout; - err.file = file; - return err; - } - - /** - * Creates an error object to be thrown when file is unparsable - * @public - * @static - * @param {string} message - Error message to be displayed. - * @param {string} filename - File name - * @returns {Error} Error with code {@link constants.UNPARSABLE_FILE} - */ - function createUnparsableFileError(message, filename) { - var err = new Error(message); - err.code = constants$4.UNPARSABLE_FILE; - return err; - } - - /** - * Returns `true` if an error came out of Mocha. - * _Can suffer from false negatives, but not false positives._ - * @static - * @public - * @param {*} err - Error, or anything - * @returns {boolean} - */ - const isMochaError$1 = err => - Boolean(err && typeof err === 'object' && MOCHA_ERRORS.has(err.code)); - - var errors$2 = { - constants: constants$4, - createFatalError: createFatalError$1, - createForbiddenExclusivityError: createForbiddenExclusivityError$1, - createInvalidArgumentTypeError: createInvalidArgumentTypeError$1, - createInvalidArgumentValueError, - createInvalidExceptionError: createInvalidExceptionError$2, - createInvalidInterfaceError, - createInvalidLegacyPluginError, - createInvalidPluginDefinitionError, - createInvalidPluginError, - createInvalidPluginImplementationError, - createInvalidReporterError, - createMissingArgumentError: createMissingArgumentError$1, - createMochaInstanceAlreadyDisposedError, - createMochaInstanceAlreadyRunningError, - createMultipleDoneError: createMultipleDoneError$1, - createNoFilesMatchPatternError, - createTimeoutError: createTimeoutError$1, - createUnparsableFileError, - createUnsupportedError: createUnsupportedError$2, - deprecate, - isMochaError: isMochaError$1, - warn - }; - - var EventEmitter$1 = require$$0.EventEmitter; - var Pending$1 = pending; - var debug$1 = browser.exports('mocha:runnable'); - var milliseconds = ms$1; - var utils$2 = utils$3; - const { - createInvalidExceptionError: createInvalidExceptionError$1, - createMultipleDoneError, - createTimeoutError - } = errors$2; - - /** - * Save timer references to avoid Sinon interfering (see GH-237). - * @private - */ - var Date$3 = commonjsGlobal.Date; - var setTimeout$2 = commonjsGlobal.setTimeout; - var clearTimeout$1 = commonjsGlobal.clearTimeout; - var toString = Object.prototype.toString; - - var runnable = Runnable$3; - - /** - * Initialize a new `Runnable` with the given `title` and callback `fn`. - * - * @class - * @extends external:EventEmitter - * @public - * @param {String} title - * @param {Function} fn - */ - function Runnable$3(title, fn) { - this.title = title; - this.fn = fn; - this.body = (fn || '').toString(); - this.async = fn && fn.length; - this.sync = !this.async; - this._timeout = 2000; - this._slow = 75; - this._retries = -1; - utils$2.assignNewMochaID(this); - Object.defineProperty(this, 'id', { - get() { - return utils$2.getMochaID(this); - } - }); - this.reset(); - } - - /** - * Inherit from `EventEmitter.prototype`. - */ - utils$2.inherits(Runnable$3, EventEmitter$1); - - /** - * Resets the state initially or for a next run. - */ - Runnable$3.prototype.reset = function () { - this.timedOut = false; - this._currentRetry = 0; - this.pending = false; - delete this.state; - delete this.err; - }; - - /** - * Get current timeout value in msecs. - * - * @private - * @returns {number} current timeout threshold value - */ - /** - * @summary - * Set timeout threshold value (msecs). - * - * @description - * A string argument can use shorthand (e.g., "2s") and will be converted. - * The value will be clamped to range [0, 2^31-1]. - * If clamped value matches either range endpoint, timeouts will be disabled. - * - * @private - * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value} - * @param {number|string} ms - Timeout threshold value. - * @returns {Runnable} this - * @chainable - */ - Runnable$3.prototype.timeout = function (ms) { - if (!arguments.length) { - return this._timeout; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - - // Clamp to range - var INT_MAX = Math.pow(2, 31) - 1; - var range = [0, INT_MAX]; - ms = utils$2.clamp(ms, range); - - // see #1652 for reasoning - if (ms === range[0] || ms === range[1]) { - this._timeout = 0; - } else { - this._timeout = ms; - } - debug$1('timeout %d', this._timeout); - - if (this.timer) { - this.resetTimeout(); - } - return this; - }; - - /** - * Set or get slow `ms`. - * - * @private - * @param {number|string} ms - * @return {Runnable|number} ms or Runnable instance. - */ - Runnable$3.prototype.slow = function (ms) { - if (!arguments.length || typeof ms === 'undefined') { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug$1('slow %d', ms); - this._slow = ms; - return this; - }; - - /** - * Halt and mark as pending. - * - * @memberof Mocha.Runnable - * @public - */ - Runnable$3.prototype.skip = function () { - this.pending = true; - throw new Pending$1('sync skip; aborting execution'); - }; - - /** - * Check if this runnable or its parent suite is marked as pending. - * - * @private - */ - Runnable$3.prototype.isPending = function () { - return this.pending || (this.parent && this.parent.isPending()); - }; - - /** - * Return `true` if this Runnable has failed. - * @return {boolean} - * @private - */ - Runnable$3.prototype.isFailed = function () { - return !this.isPending() && this.state === constants$3.STATE_FAILED; - }; - - /** - * Return `true` if this Runnable has passed. - * @return {boolean} - * @private - */ - Runnable$3.prototype.isPassed = function () { - return !this.isPending() && this.state === constants$3.STATE_PASSED; - }; - - /** - * Set or get number of retries. - * - * @private - */ - Runnable$3.prototype.retries = function (n) { - if (!arguments.length) { - return this._retries; - } - this._retries = n; - }; - - /** - * Set or get current retry - * - * @private - */ - Runnable$3.prototype.currentRetry = function (n) { - if (!arguments.length) { - return this._currentRetry; - } - this._currentRetry = n; - }; - - /** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @memberof Mocha.Runnable - * @public - * @return {string} - */ - Runnable$3.prototype.fullTitle = function () { - return this.titlePath().join(' '); - }; - - /** - * Return the title path generated by concatenating the parent's title path with the title. - * - * @memberof Mocha.Runnable - * @public - * @return {string} - */ - Runnable$3.prototype.titlePath = function () { - return this.parent.titlePath().concat([this.title]); - }; - - /** - * Clear the timeout. - * - * @private - */ - Runnable$3.prototype.clearTimeout = function () { - clearTimeout$1(this.timer); - }; - - /** - * Reset the timeout. - * - * @private - */ - Runnable$3.prototype.resetTimeout = function () { - var self = this; - var ms = this.timeout(); - - if (ms === 0) { - return; - } - this.clearTimeout(); - this.timer = setTimeout$2(function () { - if (self.timeout() === 0) { - return; - } - self.callback(self._timeoutError(ms)); - self.timedOut = true; - }, ms); - }; - - /** - * Set or get a list of whitelisted globals for this test run. - * - * @private - * @param {string[]} globals - */ - Runnable$3.prototype.globals = function (globals) { - if (!arguments.length) { - return this._allowedGlobals; - } - this._allowedGlobals = globals; - }; - - /** - * Run the test and invoke `fn(err)`. - * - * @param {Function} fn - * @private - */ - Runnable$3.prototype.run = function (fn) { - var self = this; - var start = new Date$3(); - var ctx = this.ctx; - var finished; - var errorWasHandled = false; - - if (this.isPending()) return fn(); - - // Sometimes the ctx exists, but it is not runnable - if (ctx && ctx.runnable) { - ctx.runnable(this); - } - - // called multiple times - function multiple(err) { - if (errorWasHandled) { - return; - } - errorWasHandled = true; - self.emit('error', createMultipleDoneError(self, err)); - } - - // finished - function done(err) { - var ms = self.timeout(); - if (self.timedOut) { - return; - } - - if (finished) { - return multiple(err); - } - - self.clearTimeout(); - self.duration = new Date$3() - start; - finished = true; - if (!err && self.duration > ms && ms > 0) { - err = self._timeoutError(ms); - } - fn(err); - } - - // for .resetTimeout() and Runner#uncaught() - this.callback = done; - - if (this.fn && typeof this.fn.call !== 'function') { - done( - new TypeError( - 'A runnable must be passed a function as its second argument.' - ) - ); - return; - } - - // explicit async with `done` argument - if (this.async) { - this.resetTimeout(); - - // allows skip() to be used in an explicit async context - this.skip = function asyncSkip() { - this.pending = true; - done(); - // halt execution, the uncaught handler will ignore the failure. - throw new Pending$1('async skip; aborting execution'); - }; - - try { - callFnAsync(this.fn); - } catch (err) { - // handles async runnables which actually run synchronously - errorWasHandled = true; - if (err instanceof Pending$1) { - return; // done() is already called in this.skip() - } else if (this.allowUncaught) { - throw err; - } - done(Runnable$3.toValueOrError(err)); - } - return; - } - - // sync or promise-returning - try { - callFn(this.fn); - } catch (err) { - errorWasHandled = true; - if (err instanceof Pending$1) { - return done(); - } else if (this.allowUncaught) { - throw err; - } - done(Runnable$3.toValueOrError(err)); - } - - function callFn(fn) { - var result = fn.call(ctx); - if (result && typeof result.then === 'function') { - self.resetTimeout(); - result.then( - function () { - done(); - // Return null so libraries like bluebird do not warn about - // subsequently constructed Promises. - return null; - }, - function (reason) { - done(reason || new Error('Promise rejected with no or falsy reason')); - } - ); - } else { - if (self.asyncOnly) { - return done( - new Error( - '--async-only option in use without declaring `done()` or returning a promise' - ) - ); - } - - done(); - } - } - - function callFnAsync(fn) { - var result = fn.call(ctx, function (err) { - if (err instanceof Error || toString.call(err) === '[object Error]') { - return done(err); - } - if (err) { - if (Object.prototype.toString.call(err) === '[object Object]') { - return done( - new Error('done() invoked with non-Error: ' + JSON.stringify(err)) - ); - } - return done(new Error('done() invoked with non-Error: ' + err)); - } - if (result && utils$2.isPromise(result)) { - return done( - new Error( - 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.' - ) - ); - } - - done(); - }); - } - }; - - /** - * Instantiates a "timeout" error - * - * @param {number} ms - Timeout (in milliseconds) - * @returns {Error} a "timeout" error - * @private - */ - Runnable$3.prototype._timeoutError = function (ms) { - let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.`; - if (this.file) { - msg += ' (' + this.file + ')'; - } - return createTimeoutError(msg, ms, this.file); - }; - - var constants$3 = utils$2.defineConstants( - /** - * {@link Runnable}-related constants. - * @public - * @memberof Runnable - * @readonly - * @static - * @alias constants - * @enum {string} - */ - { - /** - * Value of `state` prop when a `Runnable` has failed - */ - STATE_FAILED: 'failed', - /** - * Value of `state` prop when a `Runnable` has passed - */ - STATE_PASSED: 'passed', - /** - * Value of `state` prop when a `Runnable` has been skipped by user - */ - STATE_PENDING: 'pending' - } - ); - - /** - * Given `value`, return identity if truthy, otherwise create an "invalid exception" error and return that. - * @param {*} [value] - Value to return, if present - * @returns {*|Error} `value`, otherwise an `Error` - * @private - */ - Runnable$3.toValueOrError = function (value) { - return ( - value || - createInvalidExceptionError$1( - 'Runnable failed with falsy or undefined exception. Please throw an Error instead.', - value - ) - ); - }; - - Runnable$3.constants = constants$3; - - var suite = {exports: {}}; - - var Runnable$2 = runnable; - const {inherits, constants: constants$2} = utils$3; - const {MOCHA_ID_PROP_NAME: MOCHA_ID_PROP_NAME$1} = constants$2; - - /** - * Expose `Hook`. - */ - - var hook = Hook; - - /** - * Initialize a new `Hook` with the given `title` and callback `fn` - * - * @class - * @extends Runnable - * @param {String} title - * @param {Function} fn - */ - function Hook(title, fn) { - Runnable$2.call(this, title, fn); - this.type = 'hook'; - } - - /** - * Inherit from `Runnable.prototype`. - */ - inherits(Hook, Runnable$2); - - /** - * Resets the state for a next run. - */ - Hook.prototype.reset = function () { - Runnable$2.prototype.reset.call(this); - delete this._error; - }; - - /** - * Get or set the test `err`. - * - * @memberof Hook - * @public - * @param {Error} err - * @return {Error} - */ - Hook.prototype.error = function (err) { - if (!arguments.length) { - err = this._error; - this._error = null; - return err; - } - - this._error = err; - }; - - /** - * Returns an object suitable for IPC. - * Functions are represented by keys beginning with `$$`. - * @private - * @returns {Object} - */ - Hook.prototype.serialize = function serialize() { - return { - $$currentRetry: this.currentRetry(), - $$fullTitle: this.fullTitle(), - $$isPending: Boolean(this.isPending()), - $$titlePath: this.titlePath(), - ctx: - this.ctx && this.ctx.currentTest - ? { - currentTest: { - title: this.ctx.currentTest.title, - [MOCHA_ID_PROP_NAME$1]: this.ctx.currentTest.id - } - } - : {}, - duration: this.duration, - file: this.file, - parent: { - $$fullTitle: this.parent.fullTitle(), - [MOCHA_ID_PROP_NAME$1]: this.parent.id - }, - state: this.state, - title: this.title, - type: this.type, - [MOCHA_ID_PROP_NAME$1]: this.id - }; - }; - - (function (module, exports) { - - /** - * Module dependencies. - * @private - */ - const {EventEmitter} = require$$0; - const Hook = hook; - var { - assignNewMochaID, - clamp, - constants: utilsConstants, - defineConstants, - getMochaID, - inherits, - isString - } = utils$3; - const debug = browser.exports('mocha:suite'); - const milliseconds = ms$1; - const errors = errors$2; - - const {MOCHA_ID_PROP_NAME} = utilsConstants; - - /** - * Expose `Suite`. - */ - - module.exports = Suite; - - /** - * Create a new `Suite` with the given `title` and parent `Suite`. - * - * @public - * @param {Suite} parent - Parent suite (required!) - * @param {string} title - Title - * @return {Suite} - */ - Suite.create = function (parent, title) { - var suite = new Suite(title, parent.ctx); - suite.parent = parent; - title = suite.fullTitle(); - parent.addSuite(suite); - return suite; - }; - - /** - * Constructs a new `Suite` instance with the given `title`, `ctx`, and `isRoot`. - * - * @public - * @class - * @extends EventEmitter - * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter|EventEmitter} - * @param {string} title - Suite title. - * @param {Context} parentContext - Parent context instance. - * @param {boolean} [isRoot=false] - Whether this is the root suite. - */ - function Suite(title, parentContext, isRoot) { - if (!isString(title)) { - throw errors.createInvalidArgumentTypeError( - 'Suite argument "title" must be a string. Received type "' + - typeof title + - '"', - 'title', - 'string' - ); - } - this.title = title; - function Context() {} - Context.prototype = parentContext; - this.ctx = new Context(); - this.suites = []; - this.tests = []; - this.root = isRoot === true; - this.pending = false; - this._retries = -1; - this._beforeEach = []; - this._beforeAll = []; - this._afterEach = []; - this._afterAll = []; - this._timeout = 2000; - this._slow = 75; - this._bail = false; - this._onlyTests = []; - this._onlySuites = []; - assignNewMochaID(this); - - Object.defineProperty(this, 'id', { - get() { - return getMochaID(this); - } - }); - - this.reset(); - } - - /** - * Inherit from `EventEmitter.prototype`. - */ - inherits(Suite, EventEmitter); - - /** - * Resets the state initially or for a next run. - */ - Suite.prototype.reset = function () { - this.delayed = false; - function doReset(thingToReset) { - thingToReset.reset(); - } - this.suites.forEach(doReset); - this.tests.forEach(doReset); - this._beforeEach.forEach(doReset); - this._afterEach.forEach(doReset); - this._beforeAll.forEach(doReset); - this._afterAll.forEach(doReset); - }; - - /** - * Return a clone of this `Suite`. - * - * @private - * @return {Suite} - */ - Suite.prototype.clone = function () { - var suite = new Suite(this.title); - debug('clone'); - suite.ctx = this.ctx; - suite.root = this.root; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.slow(this.slow()); - suite.bail(this.bail()); - return suite; - }; - - /** - * Set or get timeout `ms` or short-hand such as "2s". - * - * @private - * @todo Do not attempt to set value if `ms` is undefined - * @param {number|string} ms - * @return {Suite|number} for chaining - */ - Suite.prototype.timeout = function (ms) { - if (!arguments.length) { - return this._timeout; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - - // Clamp to range - var INT_MAX = Math.pow(2, 31) - 1; - var range = [0, INT_MAX]; - ms = clamp(ms, range); - - debug('timeout %d', ms); - this._timeout = parseInt(ms, 10); - return this; - }; - - /** - * Set or get number of times to retry a failed test. - * - * @private - * @param {number|string} n - * @return {Suite|number} for chaining - */ - Suite.prototype.retries = function (n) { - if (!arguments.length) { - return this._retries; - } - debug('retries %d', n); - this._retries = parseInt(n, 10) || 0; - return this; - }; - - /** - * Set or get slow `ms` or short-hand such as "2s". - * - * @private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ - Suite.prototype.slow = function (ms) { - if (!arguments.length) { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; - }; - - /** - * Set or get whether to bail after first error. - * - * @private - * @param {boolean} bail - * @return {Suite|number} for chaining - */ - Suite.prototype.bail = function (bail) { - if (!arguments.length) { - return this._bail; - } - debug('bail %s', bail); - this._bail = bail; - return this; - }; - - /** - * Check if this suite or its parent suite is marked as pending. - * - * @private - */ - Suite.prototype.isPending = function () { - return this.pending || (this.parent && this.parent.isPending()); - }; - - /** - * Generic hook-creator. - * @private - * @param {string} title - Title of hook - * @param {Function} fn - Hook callback - * @returns {Hook} A new hook - */ - Suite.prototype._createHook = function (title, fn) { - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - hook.file = this.file; - return hook; - }; - - /** - * Run `fn(test[, done])` before running tests. - * - * @private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ - Suite.prototype.beforeAll = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before all" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._beforeAll.push(hook); - this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook); - return this; - }; - - /** - * Run `fn(test[, done])` after running tests. - * - * @private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ - Suite.prototype.afterAll = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after all" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._afterAll.push(hook); - this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook); - return this; - }; - - /** - * Run `fn(test[, done])` before each test case. - * - * @private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ - Suite.prototype.beforeEach = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before each" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._beforeEach.push(hook); - this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook); - return this; - }; - - /** - * Run `fn(test[, done])` after each test case. - * - * @private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ - Suite.prototype.afterEach = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after each" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._afterEach.push(hook); - this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook); - return this; - }; - - /** - * Add a test `suite`. - * - * @private - * @param {Suite} suite - * @return {Suite} for chaining - */ - Suite.prototype.addSuite = function (suite) { - suite.parent = this; - suite.root = false; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.slow(this.slow()); - suite.bail(this.bail()); - this.suites.push(suite); - this.emit(constants.EVENT_SUITE_ADD_SUITE, suite); - return this; - }; - - /** - * Add a `test` to this suite. - * - * @private - * @param {Test} test - * @return {Suite} for chaining - */ - Suite.prototype.addTest = function (test) { - test.parent = this; - test.timeout(this.timeout()); - test.retries(this.retries()); - test.slow(this.slow()); - test.ctx = this.ctx; - this.tests.push(test); - this.emit(constants.EVENT_SUITE_ADD_TEST, test); - return this; - }; - - /** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @memberof Suite - * @public - * @return {string} - */ - Suite.prototype.fullTitle = function () { - return this.titlePath().join(' '); - }; - - /** - * Return the title path generated by recursively concatenating the parent's - * title path. - * - * @memberof Suite - * @public - * @return {string} - */ - Suite.prototype.titlePath = function () { - var result = []; - if (this.parent) { - result = result.concat(this.parent.titlePath()); - } - if (!this.root) { - result.push(this.title); - } - return result; - }; - - /** - * Return the total number of tests. - * - * @memberof Suite - * @public - * @return {number} - */ - Suite.prototype.total = function () { - return ( - this.suites.reduce(function (sum, suite) { - return sum + suite.total(); - }, 0) + this.tests.length - ); - }; - - /** - * Iterates through each suite recursively to find all tests. Applies a - * function in the format `fn(test)`. - * - * @private - * @param {Function} fn - * @return {Suite} - */ - Suite.prototype.eachTest = function (fn) { - this.tests.forEach(fn); - this.suites.forEach(function (suite) { - suite.eachTest(fn); - }); - return this; - }; - - /** - * This will run the root suite if we happen to be running in delayed mode. - * @private - */ - Suite.prototype.run = function run() { - if (this.root) { - this.emit(constants.EVENT_ROOT_SUITE_RUN); - } - }; - - /** - * Determines whether a suite has an `only` test or suite as a descendant. - * - * @private - * @returns {Boolean} - */ - Suite.prototype.hasOnly = function hasOnly() { - return ( - this._onlyTests.length > 0 || - this._onlySuites.length > 0 || - this.suites.some(function (suite) { - return suite.hasOnly(); - }) - ); - }; - - /** - * Filter suites based on `isOnly` logic. - * - * @private - * @returns {Boolean} - */ - Suite.prototype.filterOnly = function filterOnly() { - if (this._onlyTests.length) { - // If the suite contains `only` tests, run those and ignore any nested suites. - this.tests = this._onlyTests; - this.suites = []; - } else { - // Otherwise, do not run any of the tests in this suite. - this.tests = []; - this._onlySuites.forEach(function (onlySuite) { - // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite. - // Otherwise, all of the tests on this `only` suite should be run, so don't filter it. - if (onlySuite.hasOnly()) { - onlySuite.filterOnly(); - } - }); - // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants. - var onlySuites = this._onlySuites; - this.suites = this.suites.filter(function (childSuite) { - return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly(); - }); - } - // Keep the suite only if there is something to run - return this.tests.length > 0 || this.suites.length > 0; - }; - - /** - * Adds a suite to the list of subsuites marked `only`. - * - * @private - * @param {Suite} suite - */ - Suite.prototype.appendOnlySuite = function (suite) { - this._onlySuites.push(suite); - }; - - /** - * Marks a suite to be `only`. - * - * @private - */ - Suite.prototype.markOnly = function () { - this.parent && this.parent.appendOnlySuite(this); - }; - - /** - * Adds a test to the list of tests marked `only`. - * - * @private - * @param {Test} test - */ - Suite.prototype.appendOnlyTest = function (test) { - this._onlyTests.push(test); - }; - - /** - * Returns the array of hooks by hook name; see `HOOK_TYPE_*` constants. - * @private - */ - Suite.prototype.getHooks = function getHooks(name) { - return this['_' + name]; - }; - - /** - * cleans all references from this suite and all child suites. - */ - Suite.prototype.dispose = function () { - this.suites.forEach(function (suite) { - suite.dispose(); - }); - this.cleanReferences(); - }; - - /** - * Cleans up the references to all the deferred functions - * (before/after/beforeEach/afterEach) and tests of a Suite. - * These must be deleted otherwise a memory leak can happen, - * as those functions may reference variables from closures, - * thus those variables can never be garbage collected as long - * as the deferred functions exist. - * - * @private - */ - Suite.prototype.cleanReferences = function cleanReferences() { - function cleanArrReferences(arr) { - for (var i = 0; i < arr.length; i++) { - delete arr[i].fn; - } - } - - if (Array.isArray(this._beforeAll)) { - cleanArrReferences(this._beforeAll); - } - - if (Array.isArray(this._beforeEach)) { - cleanArrReferences(this._beforeEach); - } - - if (Array.isArray(this._afterAll)) { - cleanArrReferences(this._afterAll); - } - - if (Array.isArray(this._afterEach)) { - cleanArrReferences(this._afterEach); - } - - for (var i = 0; i < this.tests.length; i++) { - delete this.tests[i].fn; - } - }; - - /** - * Returns an object suitable for IPC. - * Functions are represented by keys beginning with `$$`. - * @private - * @returns {Object} - */ - Suite.prototype.serialize = function serialize() { - return { - _bail: this._bail, - $$fullTitle: this.fullTitle(), - $$isPending: Boolean(this.isPending()), - root: this.root, - title: this.title, - [MOCHA_ID_PROP_NAME]: this.id, - parent: this.parent ? {[MOCHA_ID_PROP_NAME]: this.parent.id} : null - }; - }; - - var constants = defineConstants( - /** - * {@link Suite}-related constants. - * @public - * @memberof Suite - * @alias constants - * @readonly - * @static - * @enum {string} - */ - { - /** - * Event emitted after a test file has been loaded. Not emitted in browser. - */ - EVENT_FILE_POST_REQUIRE: 'post-require', - /** - * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected. - */ - EVENT_FILE_PRE_REQUIRE: 'pre-require', - /** - * Event emitted immediately after a test file has been loaded. Not emitted in browser. - */ - EVENT_FILE_REQUIRE: 'require', - /** - * Event emitted when `global.run()` is called (use with `delay` option). - */ - EVENT_ROOT_SUITE_RUN: 'run', - - /** - * Namespace for collection of a `Suite`'s "after all" hooks. - */ - HOOK_TYPE_AFTER_ALL: 'afterAll', - /** - * Namespace for collection of a `Suite`'s "after each" hooks. - */ - HOOK_TYPE_AFTER_EACH: 'afterEach', - /** - * Namespace for collection of a `Suite`'s "before all" hooks. - */ - HOOK_TYPE_BEFORE_ALL: 'beforeAll', - /** - * Namespace for collection of a `Suite`'s "before each" hooks. - */ - HOOK_TYPE_BEFORE_EACH: 'beforeEach', - - /** - * Emitted after a child `Suite` has been added to a `Suite`. - */ - EVENT_SUITE_ADD_SUITE: 'suite', - /** - * Emitted after an "after all" `Hook` has been added to a `Suite`. - */ - EVENT_SUITE_ADD_HOOK_AFTER_ALL: 'afterAll', - /** - * Emitted after an "after each" `Hook` has been added to a `Suite`. - */ - EVENT_SUITE_ADD_HOOK_AFTER_EACH: 'afterEach', - /** - * Emitted after an "before all" `Hook` has been added to a `Suite`. - */ - EVENT_SUITE_ADD_HOOK_BEFORE_ALL: 'beforeAll', - /** - * Emitted after an "before each" `Hook` has been added to a `Suite`. - */ - EVENT_SUITE_ADD_HOOK_BEFORE_EACH: 'beforeEach', - /** - * Emitted after a `Test` has been added to a `Suite`. - */ - EVENT_SUITE_ADD_TEST: 'test' - } - ); - - Suite.constants = constants; - }(suite)); - - /** - * Module dependencies. - * @private - */ - var EventEmitter = require$$0.EventEmitter; - var Pending = pending; - var utils$1 = utils$3; - var debug = browser.exports('mocha:runner'); - var Runnable$1 = runnable; - var Suite$2 = suite.exports; - var HOOK_TYPE_BEFORE_EACH = Suite$2.constants.HOOK_TYPE_BEFORE_EACH; - var HOOK_TYPE_AFTER_EACH = Suite$2.constants.HOOK_TYPE_AFTER_EACH; - var HOOK_TYPE_AFTER_ALL = Suite$2.constants.HOOK_TYPE_AFTER_ALL; - var HOOK_TYPE_BEFORE_ALL = Suite$2.constants.HOOK_TYPE_BEFORE_ALL; - var EVENT_ROOT_SUITE_RUN = Suite$2.constants.EVENT_ROOT_SUITE_RUN; - var STATE_FAILED = Runnable$1.constants.STATE_FAILED; - var STATE_PASSED = Runnable$1.constants.STATE_PASSED; - var STATE_PENDING = Runnable$1.constants.STATE_PENDING; - var stackFilter = utils$1.stackTraceFilter(); - var stringify = utils$1.stringify; - - const { - createInvalidExceptionError, - createUnsupportedError: createUnsupportedError$1, - createFatalError, - isMochaError, - constants: errorConstants - } = errors$2; - - /** - * Non-enumerable globals. - * @private - * @readonly - */ - var globals = [ - 'setTimeout', - 'clearTimeout', - 'setInterval', - 'clearInterval', - 'XMLHttpRequest', - 'Date', - 'setImmediate', - 'clearImmediate' - ]; - - var constants$1 = utils$1.defineConstants( - /** - * {@link Runner}-related constants. - * @public - * @memberof Runner - * @readonly - * @alias constants - * @static - * @enum {string} - */ - { - /** - * Emitted when {@link Hook} execution begins - */ - EVENT_HOOK_BEGIN: 'hook', - /** - * Emitted when {@link Hook} execution ends - */ - EVENT_HOOK_END: 'hook end', - /** - * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution) - */ - EVENT_RUN_BEGIN: 'start', - /** - * Emitted when Root {@link Suite} execution has been delayed via `delay` option - */ - EVENT_DELAY_BEGIN: 'waiting', - /** - * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()` - */ - EVENT_DELAY_END: 'ready', - /** - * Emitted when Root {@link Suite} execution ends - */ - EVENT_RUN_END: 'end', - /** - * Emitted when {@link Suite} execution begins - */ - EVENT_SUITE_BEGIN: 'suite', - /** - * Emitted when {@link Suite} execution ends - */ - EVENT_SUITE_END: 'suite end', - /** - * Emitted when {@link Test} execution begins - */ - EVENT_TEST_BEGIN: 'test', - /** - * Emitted when {@link Test} execution ends - */ - EVENT_TEST_END: 'test end', - /** - * Emitted when {@link Test} execution fails - */ - EVENT_TEST_FAIL: 'fail', - /** - * Emitted when {@link Test} execution succeeds - */ - EVENT_TEST_PASS: 'pass', - /** - * Emitted when {@link Test} becomes pending - */ - EVENT_TEST_PENDING: 'pending', - /** - * Emitted when {@link Test} execution has failed, but will retry - */ - EVENT_TEST_RETRY: 'retry', - /** - * Initial state of Runner - */ - STATE_IDLE: 'idle', - /** - * State set to this value when the Runner has started running - */ - STATE_RUNNING: 'running', - /** - * State set to this value when the Runner has stopped - */ - STATE_STOPPED: 'stopped' - } - ); - - class Runner extends EventEmitter { - /** - * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}. - * - * @extends external:EventEmitter - * @public - * @class - * @param {Suite} suite - Root suite - * @param {Object} [opts] - Settings object - * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done. - * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready. - * @param {boolean} [opts.dryRun] - Whether to report tests without running them. - * @param {boolean} [opts.failZero] - Whether to fail test run if zero tests encountered. - */ - constructor(suite, opts = {}) { - super(); - - var self = this; - this._globals = []; - this._abort = false; - this.suite = suite; - this._opts = opts; - this.state = constants$1.STATE_IDLE; - this.total = suite.total(); - this.failures = 0; - /** - * @type {Map>>} - */ - this._eventListeners = new Map(); - this.on(constants$1.EVENT_TEST_END, function (test) { - if (test.type === 'test' && test.retriedTest() && test.parent) { - var idx = - test.parent.tests && test.parent.tests.indexOf(test.retriedTest()); - if (idx > -1) test.parent.tests[idx] = test; - } - self.checkGlobals(test); - }); - this.on(constants$1.EVENT_HOOK_END, function (hook) { - self.checkGlobals(hook); - }); - this._defaultGrep = /.*/; - this.grep(this._defaultGrep); - this.globals(this.globalProps()); - - this.uncaught = this._uncaught.bind(this); - this.unhandled = (reason, promise) => { - if (isMochaError(reason)) { - debug( - 'trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:', - reason - ); - this.uncaught(reason); - } else { - debug( - 'trapped unhandled rejection from (probably) user code; re-emitting on process' - ); - this._removeEventListener( - process, - 'unhandledRejection', - this.unhandled - ); - try { - process.emit('unhandledRejection', reason, promise); - } finally { - this._addEventListener(process, 'unhandledRejection', this.unhandled); - } - } - }; - } - } - - /** - * Wrapper for setImmediate, process.nextTick, or browser polyfill. - * - * @param {Function} fn - * @private - */ - Runner.immediately = commonjsGlobal.setImmediate || nextTick$1; - - /** - * Replacement for `target.on(eventName, listener)` that does bookkeeping to remove them when this runner instance is disposed. - * @param {EventEmitter} target - The `EventEmitter` - * @param {string} eventName - The event name - * @param {string} fn - Listener function - * @private - */ - Runner.prototype._addEventListener = function (target, eventName, listener) { - debug( - '_addEventListener(): adding for event %s; %d current listeners', - eventName, - target.listenerCount(eventName) - ); - /* istanbul ignore next */ - if ( - this._eventListeners.has(target) && - this._eventListeners.get(target).has(eventName) && - this._eventListeners.get(target).get(eventName).has(listener) - ) { - debug( - 'warning: tried to attach duplicate event listener for %s', - eventName - ); - return; - } - target.on(eventName, listener); - const targetListeners = this._eventListeners.has(target) - ? this._eventListeners.get(target) - : new Map(); - const targetEventListeners = targetListeners.has(eventName) - ? targetListeners.get(eventName) - : new Set(); - targetEventListeners.add(listener); - targetListeners.set(eventName, targetEventListeners); - this._eventListeners.set(target, targetListeners); - }; - - /** - * Replacement for `target.removeListener(eventName, listener)` that also updates the bookkeeping. - * @param {EventEmitter} target - The `EventEmitter` - * @param {string} eventName - The event name - * @param {function} listener - Listener function - * @private - */ - Runner.prototype._removeEventListener = function (target, eventName, listener) { - target.removeListener(eventName, listener); - - if (this._eventListeners.has(target)) { - const targetListeners = this._eventListeners.get(target); - if (targetListeners.has(eventName)) { - const targetEventListeners = targetListeners.get(eventName); - targetEventListeners.delete(listener); - if (!targetEventListeners.size) { - targetListeners.delete(eventName); - } - } - if (!targetListeners.size) { - this._eventListeners.delete(target); - } - } else { - debug('trying to remove listener for untracked object %s', target); - } - }; - - /** - * Removes all event handlers set during a run on this instance. - * Remark: this does _not_ clean/dispose the tests or suites themselves. - */ - Runner.prototype.dispose = function () { - this.removeAllListeners(); - this._eventListeners.forEach((targetListeners, target) => { - targetListeners.forEach((targetEventListeners, eventName) => { - targetEventListeners.forEach(listener => { - target.removeListener(eventName, listener); - }); - }); - }); - this._eventListeners.clear(); - }; - - /** - * Run tests with full titles matching `re`. Updates runner.total - * with number of tests matched. - * - * @public - * @memberof Runner - * @param {RegExp} re - * @param {boolean} invert - * @return {Runner} Runner instance. - */ - Runner.prototype.grep = function (re, invert) { - debug('grep(): setting to %s', re); - this._grep = re; - this._invert = invert; - this.total = this.grepTotal(this.suite); - return this; - }; - - /** - * Returns the number of tests matching the grep search for the - * given suite. - * - * @memberof Runner - * @public - * @param {Suite} suite - * @return {number} - */ - Runner.prototype.grepTotal = function (suite) { - var self = this; - var total = 0; - - suite.eachTest(function (test) { - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (match) { - total++; - } - }); - - return total; - }; - - /** - * Return a list of global properties. - * - * @return {Array} - * @private - */ - Runner.prototype.globalProps = function () { - var props = Object.keys(commonjsGlobal); - - // non-enumerables - for (var i = 0; i < globals.length; ++i) { - if (~props.indexOf(globals[i])) { - continue; - } - props.push(globals[i]); - } - - return props; - }; - - /** - * Allow the given `arr` of globals. - * - * @public - * @memberof Runner - * @param {Array} arr - * @return {Runner} Runner instance. - */ - Runner.prototype.globals = function (arr) { - if (!arguments.length) { - return this._globals; - } - debug('globals(): setting to %O', arr); - this._globals = this._globals.concat(arr); - return this; - }; - - /** - * Check for global variable leaks. - * - * @private - */ - Runner.prototype.checkGlobals = function (test) { - if (!this.checkLeaks) { - return; - } - var ok = this._globals; - - var globals = this.globalProps(); - var leaks; - - if (test) { - ok = ok.concat(test._allowedGlobals || []); - } - - if (this.prevGlobalsLength === globals.length) { - return; - } - this.prevGlobalsLength = globals.length; - - leaks = filterLeaks(ok, globals); - this._globals = this._globals.concat(leaks); - - if (leaks.length) { - var msg = `global leak(s) detected: ${leaks.map(e => `'${e}'`).join(', ')}`; - this.fail(test, new Error(msg)); - } - }; - - /** - * Fail the given `test`. - * - * If `test` is a hook, failures work in the following pattern: - * - If bail, run corresponding `after each` and `after` hooks, - * then exit - * - Failed `before` hook skips all tests in a suite and subsuites, - * but jumps to corresponding `after` hook - * - Failed `before each` hook skips remaining tests in a - * suite and jumps to corresponding `after each` hook, - * which is run only once - * - Failed `after` hook does not alter execution order - * - Failed `after each` hook skips remaining tests in a - * suite and subsuites, but executes other `after each` - * hooks - * - * @private - * @param {Runnable} test - * @param {Error} err - * @param {boolean} [force=false] - Whether to fail a pending test. - */ - Runner.prototype.fail = function (test, err, force) { - force = force === true; - if (test.isPending() && !force) { - return; - } - if (this.state === constants$1.STATE_STOPPED) { - if (err.code === errorConstants.MULTIPLE_DONE) { - throw err; - } - throw createFatalError( - 'Test failed after root suite execution completed!', - err - ); - } - - ++this.failures; - debug('total number of failures: %d', this.failures); - test.state = STATE_FAILED; - - if (!isError(err)) { - err = thrown2Error(err); - } - - try { - err.stack = - this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack); - } catch (ignore) { - // some environments do not take kindly to monkeying with the stack - } - - this.emit(constants$1.EVENT_TEST_FAIL, test, err); - }; - - /** - * Run hook `name` callbacks and then invoke `fn()`. - * - * @private - * @param {string} name - * @param {Function} fn - */ - - Runner.prototype.hook = function (name, fn) { - if (this._opts.dryRun) return fn(); - - var suite = this.suite; - var hooks = suite.getHooks(name); - var self = this; - - function next(i) { - var hook = hooks[i]; - if (!hook) { - return fn(); - } - self.currentRunnable = hook; - - if (name === HOOK_TYPE_BEFORE_ALL) { - hook.ctx.currentTest = hook.parent.tests[0]; - } else if (name === HOOK_TYPE_AFTER_ALL) { - hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1]; - } else { - hook.ctx.currentTest = self.test; - } - - setHookTitle(hook); - - hook.allowUncaught = self.allowUncaught; - - self.emit(constants$1.EVENT_HOOK_BEGIN, hook); - - if (!hook.listeners('error').length) { - self._addEventListener(hook, 'error', function (err) { - self.fail(hook, err); - }); - } - - hook.run(function cbHookRun(err) { - var testError = hook.error(); - if (testError) { - self.fail(self.test, testError); - } - // conditional skip - if (hook.pending) { - if (name === HOOK_TYPE_AFTER_EACH) { - // TODO define and implement use case - if (self.test) { - self.test.pending = true; - } - } else if (name === HOOK_TYPE_BEFORE_EACH) { - if (self.test) { - self.test.pending = true; - } - self.emit(constants$1.EVENT_HOOK_END, hook); - hook.pending = false; // activates hook for next test - return fn(new Error('abort hookDown')); - } else if (name === HOOK_TYPE_BEFORE_ALL) { - suite.tests.forEach(function (test) { - test.pending = true; - }); - suite.suites.forEach(function (suite) { - suite.pending = true; - }); - hooks = []; - } else { - hook.pending = false; - var errForbid = createUnsupportedError$1('`this.skip` forbidden'); - self.fail(hook, errForbid); - return fn(errForbid); - } - } else if (err) { - self.fail(hook, err); - // stop executing hooks, notify callee of hook err - return fn(err); - } - self.emit(constants$1.EVENT_HOOK_END, hook); - delete hook.ctx.currentTest; - setHookTitle(hook); - next(++i); - }); - - function setHookTitle(hook) { - hook.originalTitle = hook.originalTitle || hook.title; - if (hook.ctx && hook.ctx.currentTest) { - hook.title = `${hook.originalTitle} for "${hook.ctx.currentTest.title}"`; - } else { - var parentTitle; - if (hook.parent.title) { - parentTitle = hook.parent.title; - } else { - parentTitle = hook.parent.root ? '{root}' : ''; - } - hook.title = `${hook.originalTitle} in "${parentTitle}"`; - } - } - } - - Runner.immediately(function () { - next(0); - }); - }; - - /** - * Run hook `name` for the given array of `suites` - * in order, and callback `fn(err, errSuite)`. - * - * @private - * @param {string} name - * @param {Array} suites - * @param {Function} fn - */ - Runner.prototype.hooks = function (name, suites, fn) { - var self = this; - var orig = this.suite; - - function next(suite) { - self.suite = suite; - - if (!suite) { - self.suite = orig; - return fn(); - } - - self.hook(name, function (err) { - if (err) { - var errSuite = self.suite; - self.suite = orig; - return fn(err, errSuite); - } - - next(suites.pop()); - }); - } - - next(suites.pop()); - }; - - /** - * Run 'afterEach' hooks from bottom up. - * - * @param {String} name - * @param {Function} fn - * @private - */ - Runner.prototype.hookUp = function (name, fn) { - var suites = [this.suite].concat(this.parents()).reverse(); - this.hooks(name, suites, fn); - }; - - /** - * Run 'beforeEach' hooks from top level down. - * - * @param {String} name - * @param {Function} fn - * @private - */ - Runner.prototype.hookDown = function (name, fn) { - var suites = [this.suite].concat(this.parents()); - this.hooks(name, suites, fn); - }; - - /** - * Return an array of parent Suites from - * closest to furthest. - * - * @return {Array} - * @private - */ - Runner.prototype.parents = function () { - var suite = this.suite; - var suites = []; - while (suite.parent) { - suite = suite.parent; - suites.push(suite); - } - return suites; - }; - - /** - * Run the current test and callback `fn(err)`. - * - * @param {Function} fn - * @private - */ - Runner.prototype.runTest = function (fn) { - if (this._opts.dryRun) return Runner.immediately(fn); - - var self = this; - var test = this.test; - - if (!test) { - return; - } - - if (this.asyncOnly) { - test.asyncOnly = true; - } - this._addEventListener(test, 'error', function (err) { - self.fail(test, err); - }); - if (this.allowUncaught) { - test.allowUncaught = true; - return test.run(fn); - } - try { - test.run(fn); - } catch (err) { - fn(err); - } - }; - - /** - * Run tests in the given `suite` and invoke the callback `fn()` when complete. - * - * @private - * @param {Suite} suite - * @param {Function} fn - */ - Runner.prototype.runTests = function (suite, fn) { - var self = this; - var tests = suite.tests.slice(); - var test; - - function hookErr(_, errSuite, after) { - // before/after Each hook for errSuite failed: - var orig = self.suite; - - // for failed 'after each' hook start from errSuite parent, - // otherwise start from errSuite itself - self.suite = after ? errSuite.parent : errSuite; - - if (self.suite) { - self.hookUp(HOOK_TYPE_AFTER_EACH, function (err2, errSuite2) { - self.suite = orig; - // some hooks may fail even now - if (err2) { - return hookErr(err2, errSuite2, true); - } - // report error suite - fn(errSuite); - }); - } else { - // there is no need calling other 'after each' hooks - self.suite = orig; - fn(errSuite); - } - } - - function next(err, errSuite) { - // if we bail after first err - if (self.failures && suite._bail) { - tests = []; - } - - if (self._abort) { - return fn(); - } - - if (err) { - return hookErr(err, errSuite, true); - } - - // next test - test = tests.shift(); - - // all done - if (!test) { - return fn(); - } - - // grep - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (!match) { - // Run immediately only if we have defined a grep. When we - // define a grep — It can cause maximum callstack error if - // the grep is doing a large recursive loop by neglecting - // all tests. The run immediately function also comes with - // a performance cost. So we don't want to run immediately - // if we run the whole test suite, because running the whole - // test suite don't do any immediate recursive loops. Thus, - // allowing a JS runtime to breathe. - if (self._grep !== self._defaultGrep) { - Runner.immediately(next); - } else { - next(); - } - return; - } - - // static skip, no hooks are executed - if (test.isPending()) { - if (self.forbidPending) { - self.fail(test, new Error('Pending test forbidden'), true); - } else { - test.state = STATE_PENDING; - self.emit(constants$1.EVENT_TEST_PENDING, test); - } - self.emit(constants$1.EVENT_TEST_END, test); - return next(); - } - - // execute test and hook(s) - self.emit(constants$1.EVENT_TEST_BEGIN, (self.test = test)); - self.hookDown(HOOK_TYPE_BEFORE_EACH, function (err, errSuite) { - // conditional skip within beforeEach - if (test.isPending()) { - if (self.forbidPending) { - self.fail(test, new Error('Pending test forbidden'), true); - } else { - test.state = STATE_PENDING; - self.emit(constants$1.EVENT_TEST_PENDING, test); - } - self.emit(constants$1.EVENT_TEST_END, test); - // skip inner afterEach hooks below errSuite level - var origSuite = self.suite; - self.suite = errSuite || self.suite; - return self.hookUp(HOOK_TYPE_AFTER_EACH, function (e, eSuite) { - self.suite = origSuite; - next(e, eSuite); - }); - } - if (err) { - return hookErr(err, errSuite, false); - } - self.currentRunnable = self.test; - self.runTest(function (err) { - test = self.test; - // conditional skip within it - if (test.pending) { - if (self.forbidPending) { - self.fail(test, new Error('Pending test forbidden'), true); - } else { - test.state = STATE_PENDING; - self.emit(constants$1.EVENT_TEST_PENDING, test); - } - self.emit(constants$1.EVENT_TEST_END, test); - return self.hookUp(HOOK_TYPE_AFTER_EACH, next); - } else if (err) { - var retry = test.currentRetry(); - if (retry < test.retries()) { - var clonedTest = test.clone(); - clonedTest.currentRetry(retry + 1); - tests.unshift(clonedTest); - - self.emit(constants$1.EVENT_TEST_RETRY, test, err); - - // Early return + hook trigger so that it doesn't - // increment the count wrong - return self.hookUp(HOOK_TYPE_AFTER_EACH, next); - } else { - self.fail(test, err); - } - self.emit(constants$1.EVENT_TEST_END, test); - return self.hookUp(HOOK_TYPE_AFTER_EACH, next); - } - - test.state = STATE_PASSED; - self.emit(constants$1.EVENT_TEST_PASS, test); - self.emit(constants$1.EVENT_TEST_END, test); - self.hookUp(HOOK_TYPE_AFTER_EACH, next); - }); - }); - } - - this.next = next; - this.hookErr = hookErr; - next(); - }; - - /** - * Run the given `suite` and invoke the callback `fn()` when complete. - * - * @private - * @param {Suite} suite - * @param {Function} fn - */ - Runner.prototype.runSuite = function (suite, fn) { - var i = 0; - var self = this; - var total = this.grepTotal(suite); - - debug('runSuite(): running %s', suite.fullTitle()); - - if (!total || (self.failures && suite._bail)) { - debug('runSuite(): bailing'); - return fn(); - } - - this.emit(constants$1.EVENT_SUITE_BEGIN, (this.suite = suite)); - - function next(errSuite) { - if (errSuite) { - // current suite failed on a hook from errSuite - if (errSuite === suite) { - // if errSuite is current suite - // continue to the next sibling suite - return done(); - } - // errSuite is among the parents of current suite - // stop execution of errSuite and all sub-suites - return done(errSuite); - } - - if (self._abort) { - return done(); - } - - var curr = suite.suites[i++]; - if (!curr) { - return done(); - } - - // Avoid grep neglecting large number of tests causing a - // huge recursive loop and thus a maximum call stack error. - // See comment in `this.runTests()` for more information. - if (self._grep !== self._defaultGrep) { - Runner.immediately(function () { - self.runSuite(curr, next); - }); - } else { - self.runSuite(curr, next); - } - } - - function done(errSuite) { - self.suite = suite; - self.nextSuite = next; - - // remove reference to test - delete self.test; - - self.hook(HOOK_TYPE_AFTER_ALL, function () { - self.emit(constants$1.EVENT_SUITE_END, suite); - fn(errSuite); - }); - } - - this.nextSuite = next; - - this.hook(HOOK_TYPE_BEFORE_ALL, function (err) { - if (err) { - return done(); - } - self.runTests(suite, next); - }); - }; - - /** - * Handle uncaught exceptions within runner. - * - * This function is bound to the instance as `Runner#uncaught` at instantiation - * time. It's intended to be listening on the `Process.uncaughtException` event. - * In order to not leak EE listeners, we need to ensure no more than a single - * `uncaughtException` listener exists per `Runner`. The only way to do - * this--because this function needs the context (and we don't have lambdas)--is - * to use `Function.prototype.bind`. We need strict equality to unregister and - * _only_ unregister the _one_ listener we set from the - * `Process.uncaughtException` event; would be poor form to just remove - * everything. See {@link Runner#run} for where the event listener is registered - * and unregistered. - * @param {Error} err - Some uncaught error - * @private - */ - Runner.prototype._uncaught = function (err) { - // this is defensive to prevent future developers from mis-calling this function. - // it's more likely that it'd be called with the incorrect context--say, the global - // `process` object--than it would to be called with a context that is not a "subclass" - // of `Runner`. - if (!(this instanceof Runner)) { - throw createFatalError( - 'Runner#uncaught() called with invalid context', - this - ); - } - if (err instanceof Pending) { - debug('uncaught(): caught a Pending'); - return; - } - // browser does not exit script when throwing in global.onerror() - if (this.allowUncaught && !utils$1.isBrowser()) { - debug('uncaught(): bubbling exception due to --allow-uncaught'); - throw err; - } - - if (this.state === constants$1.STATE_STOPPED) { - debug('uncaught(): throwing after run has completed!'); - throw err; - } - - if (err) { - debug('uncaught(): got truthy exception %O', err); - } else { - debug('uncaught(): undefined/falsy exception'); - err = createInvalidExceptionError( - 'Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger', - err - ); - } - - if (!isError(err)) { - err = thrown2Error(err); - debug('uncaught(): converted "error" %o to Error', err); - } - err.uncaught = true; - - var runnable = this.currentRunnable; - - if (!runnable) { - runnable = new Runnable$1('Uncaught error outside test suite'); - debug('uncaught(): no current Runnable; created a phony one'); - runnable.parent = this.suite; - - if (this.state === constants$1.STATE_RUNNING) { - debug('uncaught(): failing gracefully'); - this.fail(runnable, err); - } else { - // Can't recover from this failure - debug('uncaught(): test run has not yet started; unrecoverable'); - this.emit(constants$1.EVENT_RUN_BEGIN); - this.fail(runnable, err); - this.emit(constants$1.EVENT_RUN_END); - } - - return; - } - - runnable.clearTimeout(); - - if (runnable.isFailed()) { - debug('uncaught(): Runnable has already failed'); - // Ignore error if already failed - return; - } else if (runnable.isPending()) { - debug('uncaught(): pending Runnable wound up failing!'); - // report 'pending test' retrospectively as failed - this.fail(runnable, err, true); - return; - } - - // we cannot recover gracefully if a Runnable has already passed - // then fails asynchronously - if (runnable.isPassed()) { - debug('uncaught(): Runnable has already passed; bailing gracefully'); - this.fail(runnable, err); - this.abort(); - } else { - debug('uncaught(): forcing Runnable to complete with Error'); - return runnable.callback(err); - } - }; - - /** - * Run the root suite and invoke `fn(failures)` - * on completion. - * - * @public - * @memberof Runner - * @param {Function} fn - Callback when finished - * @param {Object} [opts] - For subclasses - * @param {string[]} opts.files - Files to run - * @param {Options} opts.options - command-line options - * @returns {Runner} Runner instance. - */ - Runner.prototype.run = function (fn, opts = {}) { - var rootSuite = this.suite; - var options = opts.options || {}; - - debug('run(): got options: %O', options); - fn = fn || function () {}; - - const end = () => { - if (!this.total && this._opts.failZero) this.failures = 1; - - debug('run(): root suite completed; emitting %s', constants$1.EVENT_RUN_END); - this.emit(constants$1.EVENT_RUN_END); - }; - - const begin = () => { - debug('run(): emitting %s', constants$1.EVENT_RUN_BEGIN); - this.emit(constants$1.EVENT_RUN_BEGIN); - debug('run(): emitted %s', constants$1.EVENT_RUN_BEGIN); - - this.runSuite(rootSuite, end); - }; - - const prepare = () => { - debug('run(): starting'); - // If there is an `only` filter - if (rootSuite.hasOnly()) { - rootSuite.filterOnly(); - debug('run(): filtered exclusive Runnables'); - } - this.state = constants$1.STATE_RUNNING; - if (this._opts.delay) { - this.emit(constants$1.EVENT_DELAY_END); - debug('run(): "delay" ended'); - } - - return begin(); - }; - - // references cleanup to avoid memory leaks - if (this._opts.cleanReferencesAfterRun) { - this.on(constants$1.EVENT_SUITE_END, suite => { - suite.cleanReferences(); - }); - } - - // callback - this.on(constants$1.EVENT_RUN_END, function () { - this.state = constants$1.STATE_STOPPED; - debug('run(): emitted %s', constants$1.EVENT_RUN_END); - fn(this.failures); - }); - - this._removeEventListener(process, 'uncaughtException', this.uncaught); - this._removeEventListener(process, 'unhandledRejection', this.unhandled); - this._addEventListener(process, 'uncaughtException', this.uncaught); - this._addEventListener(process, 'unhandledRejection', this.unhandled); - - if (this._opts.delay) { - // for reporters, I guess. - // might be nice to debounce some dots while we wait. - this.emit(constants$1.EVENT_DELAY_BEGIN, rootSuite); - rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare); - debug('run(): waiting for green light due to --delay'); - } else { - Runner.immediately(prepare); - } - - return this; - }; - - /** - * Toggle partial object linking behavior; used for building object references from - * unique ID's. Does nothing in serial mode, because the object references already exist. - * Subclasses can implement this (e.g., `ParallelBufferedRunner`) - * @abstract - * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable - * @returns {Runner} - * @chainable - * @public - * @example - * // this reporter needs proper object references when run in parallel mode - * class MyReporter() { - * constructor(runner) { - * this.runner.linkPartialObjects(true) - * .on(EVENT_SUITE_BEGIN, suite => { - // this Suite may be the same object... - * }) - * .on(EVENT_TEST_BEGIN, test => { - * // ...as the `test.parent` property - * }); - * } - * } - */ - Runner.prototype.linkPartialObjects = function (value) { - return this; - }; - - /* - * Like {@link Runner#run}, but does not accept a callback and returns a `Promise` instead of a `Runner`. - * This function cannot reject; an `unhandledRejection` event will bubble up to the `process` object instead. - * @public - * @memberof Runner - * @param {Object} [opts] - Options for {@link Runner#run} - * @returns {Promise} Failure count - */ - Runner.prototype.runAsync = async function runAsync(opts = {}) { - return new Promise(resolve => { - this.run(resolve, opts); - }); - }; - - /** - * Cleanly abort execution. - * - * @memberof Runner - * @public - * @return {Runner} Runner instance. - */ - Runner.prototype.abort = function () { - debug('abort(): aborting'); - this._abort = true; - - return this; - }; - - /** - * Returns `true` if Mocha is running in parallel mode. For reporters. - * - * Subclasses should return an appropriate value. - * @public - * @returns {false} - */ - Runner.prototype.isParallelMode = function isParallelMode() { - return false; - }; - - /** - * Configures an alternate reporter for worker processes to use. Subclasses - * using worker processes should implement this. - * @public - * @param {string} path - Absolute path to alternate reporter for worker processes to use - * @returns {Runner} - * @throws When in serial mode - * @chainable - * @abstract - */ - Runner.prototype.workerReporter = function () { - throw createUnsupportedError$1('workerReporter() not supported in serial mode'); - }; - - /** - * Filter leaks with the given globals flagged as `ok`. - * - * @private - * @param {Array} ok - * @param {Array} globals - * @return {Array} - */ - function filterLeaks(ok, globals) { - return globals.filter(function (key) { - // Firefox and Chrome exposes iframes as index inside the window object - if (/^\d+/.test(key)) { - return false; - } - - // in firefox - // if runner runs in an iframe, this iframe's window.getInterface method - // not init at first it is assigned in some seconds - if (commonjsGlobal.navigator && /^getInterface/.test(key)) { - return false; - } - - // an iframe could be approached by window[iframeIndex] - // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak - if (commonjsGlobal.navigator && /^\d+/.test(key)) { - return false; - } - - // Opera and IE expose global variables for HTML element IDs (issue #243) - if (/^mocha-/.test(key)) { - return false; - } - - var matched = ok.filter(function (ok) { - if (~ok.indexOf('*')) { - return key.indexOf(ok.split('*')[0]) === 0; - } - return key === ok; - }); - return !matched.length && (!commonjsGlobal.navigator || key !== 'onerror'); - }); - } - - /** - * Check if argument is an instance of Error object or a duck-typed equivalent. - * - * @private - * @param {Object} err - object to check - * @param {string} err.message - error message - * @returns {boolean} - */ - function isError(err) { - return err instanceof Error || (err && typeof err.message === 'string'); - } - - /** - * - * Converts thrown non-extensible type into proper Error. - * - * @private - * @param {*} thrown - Non-extensible type thrown by code - * @return {Error} - */ - function thrown2Error(err) { - return new Error( - `the ${utils$1.canonicalType(err)} ${stringify( - err - )} was thrown, throw an Error :)` - ); - } - - Runner.constants = constants$1; - - /** - * Node.js' `EventEmitter` - * @external EventEmitter - * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter} - */ - - var runner = Runner; - - (function (module, exports) { - /** - * @module Base - */ - /** - * Module dependencies. - */ - - var diff = lib; - var milliseconds = ms$1; - var utils = utils$3; - var supportsColor = require$$18; - var symbols = browser$1; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - - const isBrowser = utils.isBrowser(); - - function getBrowserWindowSize() { - if ('innerHeight' in commonjsGlobal) { - return [commonjsGlobal.innerHeight, commonjsGlobal.innerWidth]; - } - // In a Web Worker, the DOM Window is not available. - return [640, 480]; - } - - /** - * Expose `Base`. - */ - - exports = module.exports = Base; - - /** - * Check if both stdio streams are associated with a tty. - */ - - var isatty = isBrowser || (process.stdout.isTTY && process.stderr.isTTY); - - /** - * Save log references to avoid tests interfering (see GH-3604). - */ - var consoleLog = console.log; - - /** - * Enable coloring by default, except in the browser interface. - */ - - exports.useColors = - !isBrowser && - (supportsColor.stdout || process.env.MOCHA_COLORS !== undefined); - - /** - * Inline diffs instead of +/- - */ - - exports.inlineDiffs = false; - - /** - * Truncate diffs longer than this value to avoid slow performance - */ - exports.maxDiffSize = 8192; - - /** - * Default color map. - */ - - exports.colors = { - pass: 90, - fail: 31, - 'bright pass': 92, - 'bright fail': 91, - 'bright yellow': 93, - pending: 36, - suite: 0, - 'error title': 0, - 'error message': 31, - 'error stack': 90, - checkmark: 32, - fast: 90, - medium: 33, - slow: 31, - green: 32, - light: 90, - 'diff gutter': 90, - 'diff added': 32, - 'diff removed': 31, - 'diff added inline': '30;42', - 'diff removed inline': '30;41' - }; - - /** - * Default symbol map. - */ - - exports.symbols = { - ok: symbols.success, - err: symbols.error, - dot: '.', - comma: ',', - bang: '!' - }; - - /** - * Color `str` with the given `type`, - * allowing colors to be disabled, - * as well as user-defined color - * schemes. - * - * @private - * @param {string} type - * @param {string} str - * @return {string} - */ - var color = (exports.color = function (type, str) { - if (!exports.useColors) { - return String(str); - } - return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; - }); - - /** - * Expose term window size, with some defaults for when stderr is not a tty. - */ - - exports.window = { - width: 75 - }; - - if (isatty) { - if (isBrowser) { - exports.window.width = getBrowserWindowSize()[1]; - } else { - exports.window.width = process.stdout.getWindowSize(1)[0]; - } - } - - /** - * Expose some basic cursor interactions that are common among reporters. - */ - - exports.cursor = { - hide: function () { - isatty && process.stdout.write('\u001b[?25l'); - }, - - show: function () { - isatty && process.stdout.write('\u001b[?25h'); - }, - - deleteLine: function () { - isatty && process.stdout.write('\u001b[2K'); - }, - - beginningOfLine: function () { - isatty && process.stdout.write('\u001b[0G'); - }, - - CR: function () { - if (isatty) { - exports.cursor.deleteLine(); - exports.cursor.beginningOfLine(); - } else { - process.stdout.write('\r'); - } - } - }; - - var showDiff = (exports.showDiff = function (err) { - return ( - err && - err.showDiff !== false && - sameType(err.actual, err.expected) && - err.expected !== undefined - ); - }); - - function stringifyDiffObjs(err) { - if (!utils.isString(err.actual) || !utils.isString(err.expected)) { - err.actual = utils.stringify(err.actual); - err.expected = utils.stringify(err.expected); - } - } - - /** - * Returns a diff between 2 strings with coloured ANSI output. - * - * @description - * The diff will be either inline or unified dependent on the value - * of `Base.inlineDiff`. - * - * @param {string} actual - * @param {string} expected - * @return {string} Diff - */ - - var generateDiff = (exports.generateDiff = function (actual, expected) { - try { - var maxLen = exports.maxDiffSize; - var skipped = 0; - if (maxLen > 0) { - skipped = Math.max(actual.length - maxLen, expected.length - maxLen); - actual = actual.slice(0, maxLen); - expected = expected.slice(0, maxLen); - } - let result = exports.inlineDiffs - ? inlineDiff(actual, expected) - : unifiedDiff(actual, expected); - if (skipped > 0) { - result = `${result}\n [mocha] output truncated to ${maxLen} characters, see "maxDiffSize" reporter-option\n`; - } - return result; - } catch (err) { - var msg = - '\n ' + - color('diff added', '+ expected') + - ' ' + - color('diff removed', '- actual: failed to generate Mocha diff') + - '\n'; - return msg; - } - }); - - /** - * Outputs the given `failures` as a list. - * - * @public - * @memberof Mocha.reporters.Base - * @variation 1 - * @param {Object[]} failures - Each is Test instance with corresponding - * Error property - */ - exports.list = function (failures) { - var multipleErr, multipleTest; - Base.consoleLog(); - failures.forEach(function (test, i) { - // format - var fmt = - color('error title', ' %s) %s:\n') + - color('error message', ' %s') + - color('error stack', '\n%s\n'); - - // msg - var msg; - var err; - if (test.err && test.err.multiple) { - if (multipleTest !== test) { - multipleTest = test; - multipleErr = [test.err].concat(test.err.multiple); - } - err = multipleErr.shift(); - } else { - err = test.err; - } - var message; - if (typeof err.inspect === 'function') { - message = err.inspect() + ''; - } else if (err.message && typeof err.message.toString === 'function') { - message = err.message + ''; - } else { - message = ''; - } - var stack = err.stack || message; - var index = message ? stack.indexOf(message) : -1; - - if (index === -1) { - msg = message; - } else { - index += message.length; - msg = stack.slice(0, index); - // remove msg from stack - stack = stack.slice(index + 1); - } - - // uncaught - if (err.uncaught) { - msg = 'Uncaught ' + msg; - } - // explicitly show diff - if (!exports.hideDiff && showDiff(err)) { - stringifyDiffObjs(err); - fmt = - color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); - var match = message.match(/^([^:]+): expected/); - msg = '\n ' + color('error message', match ? match[1] : msg); - - msg += generateDiff(err.actual, err.expected); - } - - // indent stack trace - stack = stack.replace(/^/gm, ' '); - - // indented test title - var testTitle = ''; - test.titlePath().forEach(function (str, index) { - if (index !== 0) { - testTitle += '\n '; - } - for (var i = 0; i < index; i++) { - testTitle += ' '; - } - testTitle += str; - }); - - Base.consoleLog(fmt, i + 1, testTitle, msg, stack); - }); - }; - - /** - * Constructs a new `Base` reporter instance. - * - * @description - * All other reporters generally inherit from this reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Base(runner, options) { - var failures = (this.failures = []); - - if (!runner) { - throw new TypeError('Missing runner argument'); - } - this.options = options || {}; - this.runner = runner; - this.stats = runner.stats; // assigned so Reporters keep a closer reference - - var maxDiffSizeOpt = - this.options.reporterOption && this.options.reporterOption.maxDiffSize; - if (maxDiffSizeOpt !== undefined && !isNaN(Number(maxDiffSizeOpt))) { - exports.maxDiffSize = Number(maxDiffSizeOpt); - } - - runner.on(EVENT_TEST_PASS, function (test) { - if (test.duration > test.slow()) { - test.speed = 'slow'; - } else if (test.duration > test.slow() / 2) { - test.speed = 'medium'; - } else { - test.speed = 'fast'; - } - }); - - runner.on(EVENT_TEST_FAIL, function (test, err) { - if (showDiff(err)) { - stringifyDiffObjs(err); - } - // more than one error per test - if (test.err && err instanceof Error) { - test.err.multiple = (test.err.multiple || []).concat(err); - } else { - test.err = err; - } - failures.push(test); - }); - } - - /** - * Outputs common epilogue used by many of the bundled reporters. - * - * @public - * @memberof Mocha.reporters - */ - Base.prototype.epilogue = function () { - var stats = this.stats; - var fmt; - - Base.consoleLog(); - - // passes - fmt = - color('bright pass', ' ') + - color('green', ' %d passing') + - color('light', ' (%s)'); - - Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration)); - - // pending - if (stats.pending) { - fmt = color('pending', ' ') + color('pending', ' %d pending'); - - Base.consoleLog(fmt, stats.pending); - } - - // failures - if (stats.failures) { - fmt = color('fail', ' %d failing'); - - Base.consoleLog(fmt, stats.failures); - - Base.list(this.failures); - Base.consoleLog(); - } - - Base.consoleLog(); - }; - - /** - * Pads the given `str` to `len`. - * - * @private - * @param {string} str - * @param {string} len - * @return {string} - */ - function pad(str, len) { - str = String(str); - return Array(len - str.length + 1).join(' ') + str; - } - - /** - * Returns inline diff between 2 strings with coloured ANSI output. - * - * @private - * @param {String} actual - * @param {String} expected - * @return {string} Diff - */ - function inlineDiff(actual, expected) { - var msg = errorDiff(actual, expected); - - // linenos - var lines = msg.split('\n'); - if (lines.length > 4) { - var width = String(lines.length).length; - msg = lines - .map(function (str, i) { - return pad(++i, width) + ' |' + ' ' + str; - }) - .join('\n'); - } - - // legend - msg = - '\n' + - color('diff removed inline', 'actual') + - ' ' + - color('diff added inline', 'expected') + - '\n\n' + - msg + - '\n'; - - // indent - msg = msg.replace(/^/gm, ' '); - return msg; - } - - /** - * Returns unified diff between two strings with coloured ANSI output. - * - * @private - * @param {String} actual - * @param {String} expected - * @return {string} The diff. - */ - function unifiedDiff(actual, expected) { - var indent = ' '; - function cleanUp(line) { - if (line[0] === '+') { - return indent + colorLines('diff added', line); - } - if (line[0] === '-') { - return indent + colorLines('diff removed', line); - } - if (line.match(/@@/)) { - return '--'; - } - if (line.match(/\\ No newline/)) { - return null; - } - return indent + line; - } - function notBlank(line) { - return typeof line !== 'undefined' && line !== null; - } - var msg = diff.createPatch('string', actual, expected); - var lines = msg.split('\n').splice(5); - return ( - '\n ' + - colorLines('diff added', '+ expected') + - ' ' + - colorLines('diff removed', '- actual') + - '\n\n' + - lines.map(cleanUp).filter(notBlank).join('\n') - ); - } - - /** - * Returns character diff for `err`. - * - * @private - * @param {String} actual - * @param {String} expected - * @return {string} the diff - */ - function errorDiff(actual, expected) { - return diff - .diffWordsWithSpace(actual, expected) - .map(function (str) { - if (str.added) { - return colorLines('diff added inline', str.value); - } - if (str.removed) { - return colorLines('diff removed inline', str.value); - } - return str.value; - }) - .join(''); - } - - /** - * Colors lines for `str`, using the color `name`. - * - * @private - * @param {string} name - * @param {string} str - * @return {string} - */ - function colorLines(name, str) { - return str - .split('\n') - .map(function (str) { - return color(name, str); - }) - .join('\n'); - } - - /** - * Object#toString reference. - */ - var objToString = Object.prototype.toString; - - /** - * Checks that a / b have the same type. - * - * @private - * @param {Object} a - * @param {Object} b - * @return {boolean} - */ - function sameType(a, b) { - return objToString.call(a) === objToString.call(b); - } - - Base.consoleLog = consoleLog; - - Base.abstract = true; - }(base$1, base$1.exports)); - - var dot = {exports: {}}; - - (function (module, exports) { - /** - * @module Dot - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var inherits = utils$3.inherits; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_RUN_END = constants.EVENT_RUN_END; - - /** - * Expose `Dot`. - */ - - module.exports = Dot; - - /** - * Constructs a new `Dot` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Dot(runner, options) { - Base.call(this, runner, options); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var n = -1; - - runner.on(EVENT_RUN_BEGIN, function () { - process.stdout.write('\n'); - }); - - runner.on(EVENT_TEST_PENDING, function () { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(Base.color('pending', Base.symbols.comma)); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - if (++n % width === 0) { - process.stdout.write('\n '); - } - if (test.speed === 'slow') { - process.stdout.write(Base.color('bright yellow', Base.symbols.dot)); - } else { - process.stdout.write(Base.color(test.speed, Base.symbols.dot)); - } - }); - - runner.on(EVENT_TEST_FAIL, function () { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(Base.color('fail', Base.symbols.bang)); - }); - - runner.once(EVENT_RUN_END, function () { - process.stdout.write('\n'); - self.epilogue(); - }); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(Dot, Base); - - Dot.description = 'dot matrix representation'; - }(dot)); - - var doc = {exports: {}}; - - (function (module, exports) { - /** - * @module Doc - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var utils = utils$3; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_SUITE_END = constants.EVENT_SUITE_END; - - /** - * Expose `Doc`. - */ - - module.exports = Doc; - - /** - * Constructs a new `Doc` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Doc(runner, options) { - Base.call(this, runner, options); - - var indents = 2; - - function indent() { - return Array(indents).join(' '); - } - - runner.on(EVENT_SUITE_BEGIN, function (suite) { - if (suite.root) { - return; - } - ++indents; - Base.consoleLog('%s
', indent()); - ++indents; - Base.consoleLog('%s

%s

', indent(), utils.escape(suite.title)); - Base.consoleLog('%s
', indent()); - }); - - runner.on(EVENT_SUITE_END, function (suite) { - if (suite.root) { - return; - } - Base.consoleLog('%s
', indent()); - --indents; - Base.consoleLog('%s
', indent()); - --indents; - }); - - runner.on(EVENT_TEST_PASS, function (test) { - Base.consoleLog('%s
%s
', indent(), utils.escape(test.title)); - Base.consoleLog('%s
%s
', indent(), utils.escape(test.file)); - var code = utils.escape(utils.clean(test.body)); - Base.consoleLog('%s
%s
', indent(), code); - }); - - runner.on(EVENT_TEST_FAIL, function (test, err) { - Base.consoleLog( - '%s
%s
', - indent(), - utils.escape(test.title) - ); - Base.consoleLog( - '%s
%s
', - indent(), - utils.escape(test.file) - ); - var code = utils.escape(utils.clean(test.body)); - Base.consoleLog( - '%s
%s
', - indent(), - code - ); - Base.consoleLog( - '%s
%s
', - indent(), - utils.escape(err) - ); - }); - } - - Doc.description = 'HTML documentation'; - }(doc)); - - var tap = {exports: {}}; - - (function (module, exports) { - /** - * @module TAP - */ - /** - * Module dependencies. - */ - - var util = require$$0$1; - var Base = base$1.exports; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var inherits = utils$3.inherits; - var sprintf = util.format; - - /** - * Expose `TAP`. - */ - - module.exports = TAP; - - /** - * Constructs a new `TAP` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function TAP(runner, options) { - Base.call(this, runner, options); - - var self = this; - var n = 1; - - var tapVersion = '12'; - if (options && options.reporterOptions) { - if (options.reporterOptions.tapVersion) { - tapVersion = options.reporterOptions.tapVersion.toString(); - } - } - - this._producer = createProducer(tapVersion); - - runner.once(EVENT_RUN_BEGIN, function () { - self._producer.writeVersion(); - }); - - runner.on(EVENT_TEST_END, function () { - ++n; - }); - - runner.on(EVENT_TEST_PENDING, function (test) { - self._producer.writePending(n, test); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - self._producer.writePass(n, test); - }); - - runner.on(EVENT_TEST_FAIL, function (test, err) { - self._producer.writeFail(n, test, err); - }); - - runner.once(EVENT_RUN_END, function () { - self._producer.writeEpilogue(runner.stats); - }); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(TAP, Base); - - /** - * Returns a TAP-safe title of `test`. - * - * @private - * @param {Test} test - Test instance. - * @return {String} title with any hash character removed - */ - function title(test) { - return test.fullTitle().replace(/#/g, ''); - } - - /** - * Writes newline-terminated formatted string to reporter output stream. - * - * @private - * @param {string} format - `printf`-like format string - * @param {...*} [varArgs] - Format string arguments - */ - function println(format, varArgs) { - var vargs = Array.from(arguments); - vargs[0] += '\n'; - process.stdout.write(sprintf.apply(null, vargs)); - } - - /** - * Returns a `tapVersion`-appropriate TAP producer instance, if possible. - * - * @private - * @param {string} tapVersion - Version of TAP specification to produce. - * @returns {TAPProducer} specification-appropriate instance - * @throws {Error} if specification version has no associated producer. - */ - function createProducer(tapVersion) { - var producers = { - 12: new TAP12Producer(), - 13: new TAP13Producer() - }; - var producer = producers[tapVersion]; - - if (!producer) { - throw new Error( - 'invalid or unsupported TAP version: ' + JSON.stringify(tapVersion) - ); - } - - return producer; - } - - /** - * @summary - * Constructs a new TAPProducer. - * - * @description - * Only to be used as an abstract base class. - * - * @private - * @constructor - */ - function TAPProducer() {} - - /** - * Writes the TAP version to reporter output stream. - * - * @abstract - */ - TAPProducer.prototype.writeVersion = function () {}; - - /** - * Writes the plan to reporter output stream. - * - * @abstract - * @param {number} ntests - Number of tests that are planned to run. - */ - TAPProducer.prototype.writePlan = function (ntests) { - println('%d..%d', 1, ntests); - }; - - /** - * Writes that test passed to reporter output stream. - * - * @abstract - * @param {number} n - Index of test that passed. - * @param {Test} test - Instance containing test information. - */ - TAPProducer.prototype.writePass = function (n, test) { - println('ok %d %s', n, title(test)); - }; - - /** - * Writes that test was skipped to reporter output stream. - * - * @abstract - * @param {number} n - Index of test that was skipped. - * @param {Test} test - Instance containing test information. - */ - TAPProducer.prototype.writePending = function (n, test) { - println('ok %d %s # SKIP -', n, title(test)); - }; - - /** - * Writes that test failed to reporter output stream. - * - * @abstract - * @param {number} n - Index of test that failed. - * @param {Test} test - Instance containing test information. - * @param {Error} err - Reason the test failed. - */ - TAPProducer.prototype.writeFail = function (n, test, err) { - println('not ok %d %s', n, title(test)); - }; - - /** - * Writes the summary epilogue to reporter output stream. - * - * @abstract - * @param {Object} stats - Object containing run statistics. - */ - TAPProducer.prototype.writeEpilogue = function (stats) { - // :TBD: Why is this not counting pending tests? - println('# tests ' + (stats.passes + stats.failures)); - println('# pass ' + stats.passes); - // :TBD: Why are we not showing pending results? - println('# fail ' + stats.failures); - this.writePlan(stats.passes + stats.failures + stats.pending); - }; - - /** - * @summary - * Constructs a new TAP12Producer. - * - * @description - * Produces output conforming to the TAP12 specification. - * - * @private - * @constructor - * @extends TAPProducer - * @see {@link https://testanything.org/tap-specification.html|Specification} - */ - function TAP12Producer() { - /** - * Writes that test failed to reporter output stream, with error formatting. - * @override - */ - this.writeFail = function (n, test, err) { - TAPProducer.prototype.writeFail.call(this, n, test, err); - if (err.message) { - println(err.message.replace(/^/gm, ' ')); - } - if (err.stack) { - println(err.stack.replace(/^/gm, ' ')); - } - }; - } - - /** - * Inherit from `TAPProducer.prototype`. - */ - inherits(TAP12Producer, TAPProducer); - - /** - * @summary - * Constructs a new TAP13Producer. - * - * @description - * Produces output conforming to the TAP13 specification. - * - * @private - * @constructor - * @extends TAPProducer - * @see {@link https://testanything.org/tap-version-13-specification.html|Specification} - */ - function TAP13Producer() { - /** - * Writes the TAP version to reporter output stream. - * @override - */ - this.writeVersion = function () { - println('TAP version 13'); - }; - - /** - * Writes that test failed to reporter output stream, with error formatting. - * @override - */ - this.writeFail = function (n, test, err) { - TAPProducer.prototype.writeFail.call(this, n, test, err); - var emitYamlBlock = err.message != null || err.stack != null; - if (emitYamlBlock) { - println(indent(1) + '---'); - if (err.message) { - println(indent(2) + 'message: |-'); - println(err.message.replace(/^/gm, indent(3))); - } - if (err.stack) { - println(indent(2) + 'stack: |-'); - println(err.stack.replace(/^/gm, indent(3))); - } - println(indent(1) + '...'); - } - }; - - function indent(level) { - return Array(level + 1).join(' '); - } - } - - /** - * Inherit from `TAPProducer.prototype`. - */ - inherits(TAP13Producer, TAPProducer); - - TAP.description = 'TAP-compatible output'; - }(tap)); - - var json = {exports: {}}; - - var _polyfillNode_fs = {}; - - var _polyfillNode_fs$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': _polyfillNode_fs - }); - - var require$$2 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_fs$1); - - (function (module, exports) { - /** - * @module JSON - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var fs = require$$2; - var path = require$$1; - const createUnsupportedError = errors$2.createUnsupportedError; - const utils = utils$3; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var EVENT_RUN_END = constants.EVENT_RUN_END; - - /** - * Expose `JSON`. - */ - - module.exports = JSONReporter; - - /** - * Constructs a new `JSON` reporter instance. - * - * @public - * @class JSON - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function JSONReporter(runner, options = {}) { - Base.call(this, runner, options); - - var self = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - var output; - - if (options.reporterOption && options.reporterOption.output) { - if (utils.isBrowser()) { - throw createUnsupportedError('file output not supported in browser'); - } - output = options.reporterOption.output; - } - - runner.on(EVENT_TEST_END, function (test) { - tests.push(test); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - passes.push(test); - }); - - runner.on(EVENT_TEST_FAIL, function (test) { - failures.push(test); - }); - - runner.on(EVENT_TEST_PENDING, function (test) { - pending.push(test); - }); - - runner.once(EVENT_RUN_END, function () { - var obj = { - stats: self.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - - runner.testResults = obj; - - var json = JSON.stringify(obj, null, 2); - if (output) { - try { - fs.mkdirSync(path.dirname(output), {recursive: true}); - fs.writeFileSync(output, json); - } catch (err) { - console.error( - `${Base.symbols.err} [mocha] writing output to "${output}" failed: ${err.message}\n` - ); - process.stdout.write(json); - } - } else { - process.stdout.write(json); - } - }); - } - - /** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @private - * @param {Object} test - * @return {Object} - */ - function clean(test) { - var err = test.err || {}; - if (err instanceof Error) { - err = errorJSON(err); - } - - return { - title: test.title, - fullTitle: test.fullTitle(), - file: test.file, - duration: test.duration, - currentRetry: test.currentRetry(), - speed: test.speed, - err: cleanCycles(err) - }; - } - - /** - * Replaces any circular references inside `obj` with '[object Object]' - * - * @private - * @param {Object} obj - * @return {Object} - */ - function cleanCycles(obj) { - var cache = []; - return JSON.parse( - JSON.stringify(obj, function (key, value) { - if (typeof value === 'object' && value !== null) { - if (cache.indexOf(value) !== -1) { - // Instead of going in a circle, we'll print [object Object] - return '' + value; - } - cache.push(value); - } - - return value; - }) - ); - } - - /** - * Transform an Error object into a JSON object. - * - * @private - * @param {Error} err - * @return {Object} - */ - function errorJSON(err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function (key) { - res[key] = err[key]; - }, err); - return res; - } - - JSONReporter.description = 'single JSON object'; - }(json)); - - var html = {exports: {}}; - - /** - @module browser/Progress - */ - - /** - * Expose `Progress`. - */ - - var progress$1 = Progress; - - /** - * Initialize a new `Progress` indicator. - */ - function Progress() { - this.percent = 0; - this.size(0); - this.fontSize(11); - this.font('helvetica, arial, sans-serif'); - } - - /** - * Set progress size to `size`. - * - * @public - * @param {number} size - * @return {Progress} Progress instance. - */ - Progress.prototype.size = function (size) { - this._size = size; - return this; - }; - - /** - * Set text to `text`. - * - * @public - * @param {string} text - * @return {Progress} Progress instance. - */ - Progress.prototype.text = function (text) { - this._text = text; - return this; - }; - - /** - * Set font size to `size`. - * - * @public - * @param {number} size - * @return {Progress} Progress instance. - */ - Progress.prototype.fontSize = function (size) { - this._fontSize = size; - return this; - }; - - /** - * Set font to `family`. - * - * @param {string} family - * @return {Progress} Progress instance. - */ - Progress.prototype.font = function (family) { - this._font = family; - return this; - }; - - /** - * Update percentage to `n`. - * - * @param {number} n - * @return {Progress} Progress instance. - */ - Progress.prototype.update = function (n) { - this.percent = n; - return this; - }; - - /** - * Draw on `ctx`. - * - * @param {CanvasRenderingContext2d} ctx - * @return {Progress} Progress instance. - */ - Progress.prototype.draw = function (ctx) { - try { - var darkMatcher = window.matchMedia('(prefers-color-scheme: dark)'); - var isDarkMode = !!darkMatcher.matches; - var lightColors = { - outerCircle: '#9f9f9f', - innerCircle: '#eee', - text: '#000' - }; - var darkColors = { - outerCircle: '#888', - innerCircle: '#444', - text: '#fff' - }; - var colors = isDarkMode ? darkColors : lightColors; - - var percent = Math.min(this.percent, 100); - var size = this._size; - var half = size / 2; - var x = half; - var y = half; - var rad = half - 1; - var fontSize = this._fontSize; - - ctx.font = fontSize + 'px ' + this._font; - - var angle = Math.PI * 2 * (percent / 100); - ctx.clearRect(0, 0, size, size); - - // outer circle - ctx.strokeStyle = colors.outerCircle; - ctx.beginPath(); - ctx.arc(x, y, rad, 0, angle, false); - ctx.stroke(); - - // inner circle - ctx.strokeStyle = colors.innerCircle; - ctx.beginPath(); - ctx.arc(x, y, rad - 1, 0, angle, true); - ctx.stroke(); - - // text - var text = this._text || (percent | 0) + '%'; - var w = ctx.measureText(text).width; - - ctx.fillStyle = colors.text; - ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1); - } catch (ignore) { - // don't fail if we can't render progress - } - return this; - }; - - (function (module, exports) { - - /* eslint-env browser */ - /** - * @module HTML - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var utils = utils$3; - var Progress = progress$1; - var escapeRe = escapeStringRegexp; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_SUITE_END = constants.EVENT_SUITE_END; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var escape = utils.escape; - - /** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - - var Date = commonjsGlobal.Date; - - /** - * Expose `HTML`. - */ - - module.exports = HTML; - - /** - * Stats template. - */ - - var statsTemplate = - ''; - - var playIcon = '‣'; - - /** - * Constructs a new `HTML` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function HTML(runner, options) { - Base.call(this, runner, options); - - var self = this; - var stats = this.stats; - var stat = fragment(statsTemplate); - var items = stat.getElementsByTagName('li'); - var passes = items[1].getElementsByTagName('em')[0]; - var passesLink = items[1].getElementsByTagName('a')[0]; - var failures = items[2].getElementsByTagName('em')[0]; - var failuresLink = items[2].getElementsByTagName('a')[0]; - var duration = items[3].getElementsByTagName('em')[0]; - var canvas = stat.getElementsByTagName('canvas')[0]; - var report = fragment('
    '); - var stack = [report]; - var progress; - var ctx; - var root = document.getElementById('mocha'); - - if (canvas.getContext) { - var ratio = window.devicePixelRatio || 1; - canvas.style.width = canvas.width; - canvas.style.height = canvas.height; - canvas.width *= ratio; - canvas.height *= ratio; - ctx = canvas.getContext('2d'); - ctx.scale(ratio, ratio); - progress = new Progress(); - } - - if (!root) { - return error('#mocha div missing, add it to your document'); - } - - // pass toggle - on(passesLink, 'click', function (evt) { - evt.preventDefault(); - unhide(); - var name = /pass/.test(report.className) ? '' : ' pass'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test pass'); - } - }); - - // failure toggle - on(failuresLink, 'click', function (evt) { - evt.preventDefault(); - unhide(); - var name = /fail/.test(report.className) ? '' : ' fail'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test fail'); - } - }); - - root.appendChild(stat); - root.appendChild(report); - - if (progress) { - progress.size(40); - } - - runner.on(EVENT_SUITE_BEGIN, function (suite) { - if (suite.root) { - return; - } - - // suite - var url = self.suiteURL(suite); - var el = fragment( - '
  • %s

  • ', - url, - escape(suite.title) - ); - - // container - stack[0].appendChild(el); - stack.unshift(document.createElement('ul')); - el.appendChild(stack[0]); - }); - - runner.on(EVENT_SUITE_END, function (suite) { - if (suite.root) { - updateStats(); - return; - } - stack.shift(); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - var url = self.testURL(test); - var markup = - '
  • %e%ems ' + - '' + - playIcon + - '

  • '; - var el = fragment(markup, test.speed, test.title, test.duration, url); - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on(EVENT_TEST_FAIL, function (test) { - var el = fragment( - '
  • %e ' + - playIcon + - '

  • ', - test.title, - self.testURL(test) - ); - var stackString; // Note: Includes leading newline - var message = test.err.toString(); - - // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we - // check for the result of the stringifying. - if (message === '[object Error]') { - message = test.err.message; - } - - if (test.err.stack) { - var indexOfMessage = test.err.stack.indexOf(test.err.message); - if (indexOfMessage === -1) { - stackString = test.err.stack; - } else { - stackString = test.err.stack.slice( - test.err.message.length + indexOfMessage - ); - } - } else if (test.err.sourceURL && test.err.line !== undefined) { - // Safari doesn't give you a stack. Let's at least provide a source line. - stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')'; - } - - stackString = stackString || ''; - - if (test.err.htmlMessage && stackString) { - el.appendChild( - fragment( - '
    %s\n
    %e
    ', - test.err.htmlMessage, - stackString - ) - ); - } else if (test.err.htmlMessage) { - el.appendChild( - fragment('
    %s
    ', test.err.htmlMessage) - ); - } else { - el.appendChild( - fragment('
    %e%e
    ', message, stackString) - ); - } - - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on(EVENT_TEST_PENDING, function (test) { - var el = fragment( - '
  • %e

  • ', - test.title - ); - appendToStack(el); - updateStats(); - }); - - function appendToStack(el) { - // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack. - if (stack[0]) { - stack[0].appendChild(el); - } - } - - function updateStats() { - // TODO: add to stats - var percent = ((stats.tests / runner.total) * 100) | 0; - if (progress) { - progress.update(percent).draw(ctx); - } - - // update stats - var ms = new Date() - stats.start; - text(passes, stats.passes); - text(failures, stats.failures); - text(duration, (ms / 1000).toFixed(2)); - } - } - - /** - * Makes a URL, preserving querystring ("search") parameters. - * - * @param {string} s - * @return {string} A new URL. - */ - function makeUrl(s) { - var search = window.location.search; - - // Remove previous grep query parameter if present - if (search) { - search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?'); - } - - return ( - window.location.pathname + - (search ? search + '&' : '?') + - 'grep=' + - encodeURIComponent(escapeRe(s)) - ); - } - - /** - * Provide suite URL. - * - * @param {Object} [suite] - */ - HTML.prototype.suiteURL = function (suite) { - return makeUrl(suite.fullTitle()); - }; - - /** - * Provide test URL. - * - * @param {Object} [test] - */ - HTML.prototype.testURL = function (test) { - return makeUrl(test.fullTitle()); - }; - - /** - * Adds code toggle functionality for the provided test's list element. - * - * @param {HTMLLIElement} el - * @param {string} contents - */ - HTML.prototype.addCodeToggle = function (el, contents) { - var h2 = el.getElementsByTagName('h2')[0]; - - on(h2, 'click', function () { - pre.style.display = pre.style.display === 'none' ? 'block' : 'none'; - }); - - var pre = fragment('
    %e
    ', utils.clean(contents)); - el.appendChild(pre); - pre.style.display = 'none'; - }; - - /** - * Display error `msg`. - * - * @param {string} msg - */ - function error(msg) { - document.body.appendChild(fragment('
    %s
    ', msg)); - } - - /** - * Return a DOM fragment from `html`. - * - * @param {string} html - */ - function fragment(html) { - var args = arguments; - var div = document.createElement('div'); - var i = 1; - - div.innerHTML = html.replace(/%([se])/g, function (_, type) { - switch (type) { - case 's': - return String(args[i++]); - case 'e': - return escape(args[i++]); - // no default - } - }); - - return div.firstChild; - } - - /** - * Check for suites that do not have elements - * with `classname`, and hide them. - * - * @param {text} classname - */ - function hideSuitesWithout(classname) { - var suites = document.getElementsByClassName('suite'); - for (var i = 0; i < suites.length; i++) { - var els = suites[i].getElementsByClassName(classname); - if (!els.length) { - suites[i].className += ' hidden'; - } - } - } - - /** - * Unhide .hidden suites. - */ - function unhide() { - var els = document.getElementsByClassName('suite hidden'); - while (els.length > 0) { - els[0].className = els[0].className.replace('suite hidden', 'suite'); - } - } - - /** - * Set an element's text contents. - * - * @param {HTMLElement} el - * @param {string} contents - */ - function text(el, contents) { - if (el.textContent) { - el.textContent = contents; - } else { - el.innerText = contents; - } - } - - /** - * Listen on `event` with callback `fn`. - */ - function on(el, event, fn) { - if (el.addEventListener) { - el.addEventListener(event, fn, false); - } else { - el.attachEvent('on' + event, fn); - } - } - - HTML.browserOnly = true; - }(html)); - - var list = {exports: {}}; - - (function (module, exports) { - /** - * @module List - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var inherits = utils$3.inherits; - var constants = runner.constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var color = Base.color; - var cursor = Base.cursor; - - /** - * Expose `List`. - */ - - module.exports = List; - - /** - * Constructs a new `List` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function List(runner, options) { - Base.call(this, runner, options); - - var self = this; - var n = 0; - - runner.on(EVENT_RUN_BEGIN, function () { - Base.consoleLog(); - }); - - runner.on(EVENT_TEST_BEGIN, function (test) { - process.stdout.write(color('pass', ' ' + test.fullTitle() + ': ')); - }); - - runner.on(EVENT_TEST_PENDING, function (test) { - var fmt = color('checkmark', ' -') + color('pending', ' %s'); - Base.consoleLog(fmt, test.fullTitle()); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - var fmt = - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s: ') + - color(test.speed, '%dms'); - cursor.CR(); - Base.consoleLog(fmt, test.fullTitle(), test.duration); - }); - - runner.on(EVENT_TEST_FAIL, function (test) { - cursor.CR(); - Base.consoleLog(color('fail', ' %d) %s'), ++n, test.fullTitle()); - }); - - runner.once(EVENT_RUN_END, self.epilogue.bind(self)); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(List, Base); - - List.description = 'like "spec" reporter but flat'; - }(list)); - - var min = {exports: {}}; - - (function (module, exports) { - /** - * @module Min - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var inherits = utils$3.inherits; - var constants = runner.constants; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - - /** - * Expose `Min`. - */ - - module.exports = Min; - - /** - * Constructs a new `Min` reporter instance. - * - * @description - * This minimal test reporter is best used with '--watch'. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Min(runner, options) { - Base.call(this, runner, options); - - runner.on(EVENT_RUN_BEGIN, function () { - // clear screen - process.stdout.write('\u001b[2J'); - // set cursor position - process.stdout.write('\u001b[1;3H'); - }); - - runner.once(EVENT_RUN_END, this.epilogue.bind(this)); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(Min, Base); - - Min.description = 'essentially just a summary'; - }(min)); - - var spec = {exports: {}}; - - (function (module, exports) { - /** - * @module Spec - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var constants = runner.constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_SUITE_END = constants.EVENT_SUITE_END; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var inherits = utils$3.inherits; - var color = Base.color; - - /** - * Expose `Spec`. - */ - - module.exports = Spec; - - /** - * Constructs a new `Spec` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Spec(runner, options) { - Base.call(this, runner, options); - - var self = this; - var indents = 0; - var n = 0; - - function indent() { - return Array(indents).join(' '); - } - - runner.on(EVENT_RUN_BEGIN, function () { - Base.consoleLog(); - }); - - runner.on(EVENT_SUITE_BEGIN, function (suite) { - ++indents; - Base.consoleLog(color('suite', '%s%s'), indent(), suite.title); - }); - - runner.on(EVENT_SUITE_END, function () { - --indents; - if (indents === 1) { - Base.consoleLog(); - } - }); - - runner.on(EVENT_TEST_PENDING, function (test) { - var fmt = indent() + color('pending', ' - %s'); - Base.consoleLog(fmt, test.title); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - var fmt; - if (test.speed === 'fast') { - fmt = - indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s'); - Base.consoleLog(fmt, test.title); - } else { - fmt = - indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s') + - color(test.speed, ' (%dms)'); - Base.consoleLog(fmt, test.title, test.duration); - } - }); - - runner.on(EVENT_TEST_FAIL, function (test) { - Base.consoleLog(indent() + color('fail', ' %d) %s'), ++n, test.title); - }); - - runner.once(EVENT_RUN_END, self.epilogue.bind(self)); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(Spec, Base); - - Spec.description = 'hierarchical & verbose [default]'; - }(spec)); - - var nyan = {exports: {}}; - - (function (module, exports) { - /** - * @module Nyan - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var constants = runner.constants; - var inherits = utils$3.inherits; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - - /** - * Expose `Dot`. - */ - - module.exports = NyanCat; - - /** - * Constructs a new `Nyan` reporter instance. - * - * @public - * @class Nyan - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function NyanCat(runner, options) { - Base.call(this, runner, options); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var nyanCatWidth = (this.nyanCatWidth = 11); - - this.colorIndex = 0; - this.numberOfLines = 4; - this.rainbowColors = self.generateColors(); - this.scoreboardWidth = 5; - this.tick = 0; - this.trajectories = [[], [], [], []]; - this.trajectoryWidthMax = width - nyanCatWidth; - - runner.on(EVENT_RUN_BEGIN, function () { - Base.cursor.hide(); - self.draw(); - }); - - runner.on(EVENT_TEST_PENDING, function () { - self.draw(); - }); - - runner.on(EVENT_TEST_PASS, function () { - self.draw(); - }); - - runner.on(EVENT_TEST_FAIL, function () { - self.draw(); - }); - - runner.once(EVENT_RUN_END, function () { - Base.cursor.show(); - for (var i = 0; i < self.numberOfLines; i++) { - write('\n'); - } - self.epilogue(); - }); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(NyanCat, Base); - - /** - * Draw the nyan cat - * - * @private - */ - - NyanCat.prototype.draw = function () { - this.appendRainbow(); - this.drawScoreboard(); - this.drawRainbow(); - this.drawNyanCat(); - this.tick = !this.tick; - }; - - /** - * Draw the "scoreboard" showing the number - * of passes, failures and pending tests. - * - * @private - */ - - NyanCat.prototype.drawScoreboard = function () { - var stats = this.stats; - - function draw(type, n) { - write(' '); - write(Base.color(type, n)); - write('\n'); - } - - draw('green', stats.passes); - draw('fail', stats.failures); - draw('pending', stats.pending); - write('\n'); - - this.cursorUp(this.numberOfLines); - }; - - /** - * Append the rainbow. - * - * @private - */ - - NyanCat.prototype.appendRainbow = function () { - var segment = this.tick ? '_' : '-'; - var rainbowified = this.rainbowify(segment); - - for (var index = 0; index < this.numberOfLines; index++) { - var trajectory = this.trajectories[index]; - if (trajectory.length >= this.trajectoryWidthMax) { - trajectory.shift(); - } - trajectory.push(rainbowified); - } - }; - - /** - * Draw the rainbow. - * - * @private - */ - - NyanCat.prototype.drawRainbow = function () { - var self = this; - - this.trajectories.forEach(function (line) { - write('\u001b[' + self.scoreboardWidth + 'C'); - write(line.join('')); - write('\n'); - }); - - this.cursorUp(this.numberOfLines); - }; - - /** - * Draw the nyan cat - * - * @private - */ - NyanCat.prototype.drawNyanCat = function () { - var self = this; - var startWidth = this.scoreboardWidth + this.trajectories[0].length; - var dist = '\u001b[' + startWidth + 'C'; - var padding = ''; - - write(dist); - write('_,------,'); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write('_|' + padding + '/\\_/\\ '); - write('\n'); - - write(dist); - padding = self.tick ? '_' : '__'; - var tail = self.tick ? '~' : '^'; - write(tail + '|' + padding + this.face() + ' '); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write(padding + '"" "" '); - write('\n'); - - this.cursorUp(this.numberOfLines); - }; - - /** - * Draw nyan cat face. - * - * @private - * @return {string} - */ - - NyanCat.prototype.face = function () { - var stats = this.stats; - if (stats.failures) { - return '( x .x)'; - } else if (stats.pending) { - return '( o .o)'; - } else if (stats.passes) { - return '( ^ .^)'; - } - return '( - .-)'; - }; - - /** - * Move cursor up `n`. - * - * @private - * @param {number} n - */ - - NyanCat.prototype.cursorUp = function (n) { - write('\u001b[' + n + 'A'); - }; - - /** - * Move cursor down `n`. - * - * @private - * @param {number} n - */ - - NyanCat.prototype.cursorDown = function (n) { - write('\u001b[' + n + 'B'); - }; - - /** - * Generate rainbow colors. - * - * @private - * @return {Array} - */ - NyanCat.prototype.generateColors = function () { - var colors = []; - - for (var i = 0; i < 6 * 7; i++) { - var pi3 = Math.floor(Math.PI / 3); - var n = i * (1.0 / 6); - var r = Math.floor(3 * Math.sin(n) + 3); - var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); - var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); - colors.push(36 * r + 6 * g + b + 16); - } - - return colors; - }; - - /** - * Apply rainbow to the given `str`. - * - * @private - * @param {string} str - * @return {string} - */ - NyanCat.prototype.rainbowify = function (str) { - if (!Base.useColors) { - return str; - } - var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; - this.colorIndex += 1; - return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m'; - }; - - /** - * Stdout helper. - * - * @param {string} string A message to write to stdout. - */ - function write(string) { - process.stdout.write(string); - } - - NyanCat.description = '"nyan cat"'; - }(nyan)); - - var xunit = {exports: {}}; - - (function (module, exports) { - /** - * @module XUnit - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var utils = utils$3; - var fs = require$$2; - var path = require$$1; - var errors = errors$2; - var createUnsupportedError = errors.createUnsupportedError; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var STATE_FAILED = runnable.constants.STATE_FAILED; - var inherits = utils.inherits; - var escape = utils.escape; - - /** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - var Date = commonjsGlobal.Date; - - /** - * Expose `XUnit`. - */ - - module.exports = XUnit; - - /** - * Constructs a new `XUnit` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function XUnit(runner, options) { - Base.call(this, runner, options); - - var stats = this.stats; - var tests = []; - var self = this; - - // the name of the test suite, as it will appear in the resulting XML file - var suiteName; - - // the default name of the test suite if none is provided - var DEFAULT_SUITE_NAME = 'Mocha Tests'; - - if (options && options.reporterOptions) { - if (options.reporterOptions.output) { - if (!fs.createWriteStream) { - throw createUnsupportedError('file output not supported in browser'); - } - - fs.mkdirSync(path.dirname(options.reporterOptions.output), { - recursive: true - }); - self.fileStream = fs.createWriteStream(options.reporterOptions.output); - } - - // get the suite name from the reporter options (if provided) - suiteName = options.reporterOptions.suiteName; - } - - // fall back to the default suite name - suiteName = suiteName || DEFAULT_SUITE_NAME; - - runner.on(EVENT_TEST_PENDING, function (test) { - tests.push(test); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - tests.push(test); - }); - - runner.on(EVENT_TEST_FAIL, function (test) { - tests.push(test); - }); - - runner.once(EVENT_RUN_END, function () { - self.write( - tag( - 'testsuite', - { - name: suiteName, - tests: stats.tests, - failures: 0, - errors: stats.failures, - skipped: stats.tests - stats.failures - stats.passes, - timestamp: new Date().toUTCString(), - time: stats.duration / 1000 || 0 - }, - false - ) - ); - - tests.forEach(function (t) { - self.test(t); - }); - - self.write(''); - }); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(XUnit, Base); - - /** - * Override done to close the stream (if it's a file). - * - * @param failures - * @param {Function} fn - */ - XUnit.prototype.done = function (failures, fn) { - if (this.fileStream) { - this.fileStream.end(function () { - fn(failures); - }); - } else { - fn(failures); - } - }; - - /** - * Write out the given line. - * - * @param {string} line - */ - XUnit.prototype.write = function (line) { - if (this.fileStream) { - this.fileStream.write(line + '\n'); - } else if (typeof process === 'object' && process.stdout) { - process.stdout.write(line + '\n'); - } else { - Base.consoleLog(line); - } - }; - - /** - * Output tag for the given `test.` - * - * @param {Test} test - */ - XUnit.prototype.test = function (test) { - Base.useColors = false; - - var attrs = { - classname: test.parent.fullTitle(), - name: test.title, - time: test.duration / 1000 || 0 - }; - - if (test.state === STATE_FAILED) { - var err = test.err; - var diff = - !Base.hideDiff && Base.showDiff(err) - ? '\n' + Base.generateDiff(err.actual, err.expected) - : ''; - this.write( - tag( - 'testcase', - attrs, - false, - tag( - 'failure', - {}, - false, - escape(err.message) + escape(diff) + '\n' + escape(err.stack) - ) - ) - ); - } else if (test.isPending()) { - this.write(tag('testcase', attrs, false, tag('skipped', {}, true))); - } else { - this.write(tag('testcase', attrs, true)); - } - }; - - /** - * HTML tag helper. - * - * @param name - * @param attrs - * @param close - * @param content - * @return {string} - */ - function tag(name, attrs, close, content) { - var end = close ? '/>' : '>'; - var pairs = []; - var tag; - - for (var key in attrs) { - if (Object.prototype.hasOwnProperty.call(attrs, key)) { - pairs.push(key + '="' + escape(attrs[key]) + '"'); - } - } - - tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end; - if (content) { - tag += content + '' + '\n'; - buf += title(suite.title) + '\n'; - }); - - runner.on(EVENT_SUITE_END, function () { - --level; - }); - - runner.on(EVENT_TEST_PASS, function (test) { - var code = utils.clean(test.body); - buf += test.title + '.\n'; - buf += '\n```js\n'; - buf += code + '\n'; - buf += '```\n\n'; - }); - - runner.once(EVENT_RUN_END, function () { - process.stdout.write('# TOC\n'); - process.stdout.write(generateTOC(runner.suite)); - process.stdout.write(buf); - }); - } - - Markdown.description = 'GitHub Flavored Markdown'; - }(markdown)); - - var progress = {exports: {}}; - - (function (module, exports) { - /** - * @module Progress - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var constants = runner.constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var inherits = utils$3.inherits; - var color = Base.color; - var cursor = Base.cursor; - - /** - * Expose `Progress`. - */ - - module.exports = Progress; - - /** - * General progress bar color. - */ - - Base.colors.progress = 90; - - /** - * Constructs a new `Progress` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Progress(runner, options) { - Base.call(this, runner, options); - - var self = this; - var width = (Base.window.width * 0.5) | 0; - var total = runner.total; - var complete = 0; - var lastN = -1; - - // default chars - options = options || {}; - var reporterOptions = options.reporterOptions || {}; - - options.open = reporterOptions.open || '['; - options.complete = reporterOptions.complete || '▬'; - options.incomplete = reporterOptions.incomplete || Base.symbols.dot; - options.close = reporterOptions.close || ']'; - options.verbose = reporterOptions.verbose || false; - - // tests started - runner.on(EVENT_RUN_BEGIN, function () { - process.stdout.write('\n'); - cursor.hide(); - }); - - // tests complete - runner.on(EVENT_TEST_END, function () { - complete++; - - var percent = complete / total; - var n = (width * percent) | 0; - var i = width - n; - - if (n === lastN && !options.verbose) { - // Don't re-render the line if it hasn't changed - return; - } - lastN = n; - - cursor.CR(); - process.stdout.write('\u001b[J'); - process.stdout.write(color('progress', ' ' + options.open)); - process.stdout.write(Array(n).join(options.complete)); - process.stdout.write(Array(i).join(options.incomplete)); - process.stdout.write(color('progress', options.close)); - if (options.verbose) { - process.stdout.write(color('progress', ' ' + complete + ' of ' + total)); - } - }); - - // tests are complete, output some stats - // and the failures if any - runner.once(EVENT_RUN_END, function () { - cursor.show(); - process.stdout.write('\n'); - self.epilogue(); - }); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(Progress, Base); - - Progress.description = 'a progress bar'; - }(progress)); - - var landing = {exports: {}}; - - (function (module, exports) { - /** - * @module Landing - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var inherits = utils$3.inherits; - var constants = runner.constants; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_END = constants.EVENT_TEST_END; - var STATE_FAILED = runnable.constants.STATE_FAILED; - - var cursor = Base.cursor; - var color = Base.color; - - /** - * Expose `Landing`. - */ - - module.exports = Landing; - - /** - * Airplane color. - */ - - Base.colors.plane = 0; - - /** - * Airplane crash color. - */ - - Base.colors['plane crash'] = 31; - - /** - * Runway color. - */ - - Base.colors.runway = 90; - - /** - * Constructs a new `Landing` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function Landing(runner, options) { - Base.call(this, runner, options); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var stream = process.stdout; - - var plane = color('plane', '✈'); - var crashed = -1; - var n = 0; - var total = 0; - - function runway() { - var buf = Array(width).join('-'); - return ' ' + color('runway', buf); - } - - runner.on(EVENT_RUN_BEGIN, function () { - stream.write('\n\n\n '); - cursor.hide(); - }); - - runner.on(EVENT_TEST_END, function (test) { - // check if the plane crashed - var col = crashed === -1 ? ((width * ++n) / ++total) | 0 : crashed; - // show the crash - if (test.state === STATE_FAILED) { - plane = color('plane crash', '✈'); - crashed = col; - } - - // render landing strip - stream.write('\u001b[' + (width + 1) + 'D\u001b[2A'); - stream.write(runway()); - stream.write('\n '); - stream.write(color('runway', Array(col).join('⋅'))); - stream.write(plane); - stream.write(color('runway', Array(width - col).join('⋅') + '\n')); - stream.write(runway()); - stream.write('\u001b[0m'); - }); - - runner.once(EVENT_RUN_END, function () { - cursor.show(); - process.stdout.write('\n'); - self.epilogue(); - }); - - // if cursor is hidden when we ctrl-C, then it will remain hidden unless... - process.once('SIGINT', function () { - cursor.show(); - nextTick$1(function () { - process.kill(process.pid, 'SIGINT'); - }); - }); - } - - /** - * Inherit from `Base.prototype`. - */ - inherits(Landing, Base); - - Landing.description = 'Unicode landing strip'; - }(landing)); - - var jsonStream = {exports: {}}; - - (function (module, exports) { - /** - * @module JSONStream - */ - /** - * Module dependencies. - */ - - var Base = base$1.exports; - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_RUN_END = constants.EVENT_RUN_END; - - /** - * Expose `JSONStream`. - */ - - module.exports = JSONStream; - - /** - * Constructs a new `JSONStream` reporter instance. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @param {Runner} runner - Instance triggers reporter actions. - * @param {Object} [options] - runner options - */ - function JSONStream(runner, options) { - Base.call(this, runner, options); - - var self = this; - var total = runner.total; - - runner.once(EVENT_RUN_BEGIN, function () { - writeEvent(['start', {total}]); - }); - - runner.on(EVENT_TEST_PASS, function (test) { - writeEvent(['pass', clean(test)]); - }); - - runner.on(EVENT_TEST_FAIL, function (test, err) { - test = clean(test); - test.err = err.message; - test.stack = err.stack || null; - writeEvent(['fail', test]); - }); - - runner.once(EVENT_RUN_END, function () { - writeEvent(['end', self.stats]); - }); - } - - /** - * Mocha event to be written to the output stream. - * @typedef {Array} JSONStream~MochaEvent - */ - - /** - * Writes Mocha event to reporter output stream. - * - * @private - * @param {JSONStream~MochaEvent} event - Mocha event to be output. - */ - function writeEvent(event) { - process.stdout.write(JSON.stringify(event) + '\n'); - } - - /** - * Returns an object literal representation of `test` - * free of cyclic properties, etc. - * - * @private - * @param {Test} test - Instance used as data source. - * @return {Object} object containing pared-down test instance data - */ - function clean(test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - file: test.file, - duration: test.duration, - currentRetry: test.currentRetry(), - speed: test.speed - }; - } - - JSONStream.description = 'newline delimited JSON events'; - }(jsonStream)); - - (function (exports) { - - // Alias exports to a their normalized format Mocha#reporter to prevent a need - // for dynamic (try/catch) requires, which Browserify doesn't handle. - exports.Base = exports.base = base$1.exports; - exports.Dot = exports.dot = dot.exports; - exports.Doc = exports.doc = doc.exports; - exports.TAP = exports.tap = tap.exports; - exports.JSON = exports.json = json.exports; - exports.HTML = exports.html = html.exports; - exports.List = exports.list = list.exports; - exports.Min = exports.min = min.exports; - exports.Spec = exports.spec = spec.exports; - exports.Nyan = exports.nyan = nyan.exports; - exports.XUnit = exports.xunit = xunit.exports; - exports.Markdown = exports.markdown = markdown.exports; - exports.Progress = exports.progress = progress.exports; - exports.Landing = exports.landing = landing.exports; - exports.JSONStream = exports['json-stream'] = jsonStream.exports; - }(reporters)); - - var diff = true; - var extension = [ - "js", - "cjs", - "mjs" - ]; - var reporter = "spec"; - var slow = 75; - var timeout = 2000; - var ui = "bdd"; - var require$$4 = { - diff: diff, - extension: extension, - "package": "./package.json", - reporter: reporter, - slow: slow, - timeout: timeout, - ui: ui, - "watch-ignore": [ - "node_modules", - ".git" - ] - }; - - /** - * Provides a factory function for a {@link StatsCollector} object. - * @module - */ - - var constants = runner.constants; - var EVENT_TEST_PASS = constants.EVENT_TEST_PASS; - var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL; - var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN; - var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN; - var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING; - var EVENT_RUN_END = constants.EVENT_RUN_END; - var EVENT_TEST_END = constants.EVENT_TEST_END; - - /** - * Test statistics collector. - * - * @public - * @typedef {Object} StatsCollector - * @property {number} suites - integer count of suites run. - * @property {number} tests - integer count of tests run. - * @property {number} passes - integer count of passing tests. - * @property {number} pending - integer count of pending tests. - * @property {number} failures - integer count of failed tests. - * @property {Date} start - time when testing began. - * @property {Date} end - time when testing concluded. - * @property {number} duration - number of msecs that testing took. - */ - - var Date$2 = commonjsGlobal.Date; - - /** - * Provides stats such as test duration, number of tests passed / failed etc., by listening for events emitted by `runner`. - * - * @private - * @param {Runner} runner - Runner instance - * @throws {TypeError} If falsy `runner` - */ - function createStatsCollector(runner) { - /** - * @type StatsCollector - */ - var stats = { - suites: 0, - tests: 0, - passes: 0, - pending: 0, - failures: 0 - }; - - if (!runner) { - throw new TypeError('Missing runner argument'); - } - - runner.stats = stats; - - runner.once(EVENT_RUN_BEGIN, function () { - stats.start = new Date$2(); - }); - runner.on(EVENT_SUITE_BEGIN, function (suite) { - suite.root || stats.suites++; - }); - runner.on(EVENT_TEST_PASS, function () { - stats.passes++; - }); - runner.on(EVENT_TEST_FAIL, function () { - stats.failures++; - }); - runner.on(EVENT_TEST_PENDING, function () { - stats.pending++; - }); - runner.on(EVENT_TEST_END, function () { - stats.tests++; - }); - runner.once(EVENT_RUN_END, function () { - stats.end = new Date$2(); - stats.duration = stats.end - stats.start; - }); - } - - var statsCollector = createStatsCollector; - - var interfaces = {}; - - var bdd = {exports: {}}; - - var Runnable = runnable; - var utils = utils$3; - var errors$1 = errors$2; - var createInvalidArgumentTypeError = errors$1.createInvalidArgumentTypeError; - var isString = utils.isString; - - const {MOCHA_ID_PROP_NAME} = utils.constants; - - var test = Test$4; - - /** - * Initialize a new `Test` with the given `title` and callback `fn`. - * - * @public - * @class - * @extends Runnable - * @param {String} title - Test title (required) - * @param {Function} [fn] - Test callback. If omitted, the Test is considered "pending" - */ - function Test$4(title, fn) { - if (!isString(title)) { - throw createInvalidArgumentTypeError( - 'Test argument "title" should be a string. Received type "' + - typeof title + - '"', - 'title', - 'string' - ); - } - this.type = 'test'; - Runnable.call(this, title, fn); - this.reset(); - } - - /** - * Inherit from `Runnable.prototype`. - */ - utils.inherits(Test$4, Runnable); - - /** - * Resets the state initially or for a next run. - */ - Test$4.prototype.reset = function () { - Runnable.prototype.reset.call(this); - this.pending = !this.fn; - delete this.state; - }; - - /** - * Set or get retried test - * - * @private - */ - Test$4.prototype.retriedTest = function (n) { - if (!arguments.length) { - return this._retriedTest; - } - this._retriedTest = n; - }; - - /** - * Add test to the list of tests marked `only`. - * - * @private - */ - Test$4.prototype.markOnly = function () { - this.parent.appendOnlyTest(this); - }; - - Test$4.prototype.clone = function () { - var test = new Test$4(this.title, this.fn); - test.timeout(this.timeout()); - test.slow(this.slow()); - test.retries(this.retries()); - test.currentRetry(this.currentRetry()); - test.retriedTest(this.retriedTest() || this); - test.globals(this.globals()); - test.parent = this.parent; - test.file = this.file; - test.ctx = this.ctx; - return test; - }; - - /** - * Returns an minimal object suitable for transmission over IPC. - * Functions are represented by keys beginning with `$$`. - * @private - * @returns {Object} - */ - Test$4.prototype.serialize = function serialize() { - return { - $$currentRetry: this._currentRetry, - $$fullTitle: this.fullTitle(), - $$isPending: Boolean(this.pending), - $$retriedTest: this._retriedTest || null, - $$slow: this._slow, - $$titlePath: this.titlePath(), - body: this.body, - duration: this.duration, - err: this.err, - parent: { - $$fullTitle: this.parent.fullTitle(), - [MOCHA_ID_PROP_NAME]: this.parent.id - }, - speed: this.speed, - state: this.state, - title: this.title, - type: this.type, - file: this.file, - [MOCHA_ID_PROP_NAME]: this.id - }; - }; - - /** - @module interfaces/common - */ - - var Suite$1 = suite.exports; - var errors = errors$2; - var createMissingArgumentError = errors.createMissingArgumentError; - var createUnsupportedError = errors.createUnsupportedError; - var createForbiddenExclusivityError = errors.createForbiddenExclusivityError; - - /** - * Functions common to more than one interface. - * - * @private - * @param {Suite[]} suites - * @param {Context} context - * @param {Mocha} mocha - * @return {Object} An object containing common functions. - */ - var common = function (suites, context, mocha) { - /** - * Check if the suite should be tested. - * - * @private - * @param {Suite} suite - suite to check - * @returns {boolean} - */ - function shouldBeTested(suite) { - return ( - !mocha.options.grep || - (mocha.options.grep && - mocha.options.grep.test(suite.fullTitle()) && - !mocha.options.invert) - ); - } - - return { - /** - * This is only present if flag --delay is passed into Mocha. It triggers - * root suite execution. - * - * @param {Suite} suite The root suite. - * @return {Function} A function which runs the root suite - */ - runWithSuite: function runWithSuite(suite) { - return function run() { - suite.run(); - }; - }, - - /** - * Execute before running tests. - * - * @param {string} name - * @param {Function} fn - */ - before: function (name, fn) { - suites[0].beforeAll(name, fn); - }, - - /** - * Execute after running tests. - * - * @param {string} name - * @param {Function} fn - */ - after: function (name, fn) { - suites[0].afterAll(name, fn); - }, - - /** - * Execute before each test case. - * - * @param {string} name - * @param {Function} fn - */ - beforeEach: function (name, fn) { - suites[0].beforeEach(name, fn); - }, - - /** - * Execute after each test case. - * - * @param {string} name - * @param {Function} fn - */ - afterEach: function (name, fn) { - suites[0].afterEach(name, fn); - }, - - suite: { - /** - * Create an exclusive Suite; convenience function - * See docstring for create() below. - * - * @param {Object} opts - * @returns {Suite} - */ - only: function only(opts) { - if (mocha.options.forbidOnly) { - throw createForbiddenExclusivityError(mocha); - } - opts.isOnly = true; - return this.create(opts); - }, - - /** - * Create a Suite, but skip it; convenience function - * See docstring for create() below. - * - * @param {Object} opts - * @returns {Suite} - */ - skip: function skip(opts) { - opts.pending = true; - return this.create(opts); - }, - - /** - * Creates a suite. - * - * @param {Object} opts Options - * @param {string} opts.title Title of Suite - * @param {Function} [opts.fn] Suite Function (not always applicable) - * @param {boolean} [opts.pending] Is Suite pending? - * @param {string} [opts.file] Filepath where this Suite resides - * @param {boolean} [opts.isOnly] Is Suite exclusive? - * @returns {Suite} - */ - create: function create(opts) { - var suite = Suite$1.create(suites[0], opts.title); - suite.pending = Boolean(opts.pending); - suite.file = opts.file; - suites.unshift(suite); - if (opts.isOnly) { - suite.markOnly(); - } - if ( - suite.pending && - mocha.options.forbidPending && - shouldBeTested(suite) - ) { - throw createUnsupportedError('Pending test forbidden'); - } - if (typeof opts.fn === 'function') { - opts.fn.call(suite); - suites.shift(); - } else if (typeof opts.fn === 'undefined' && !suite.pending) { - throw createMissingArgumentError( - 'Suite "' + - suite.fullTitle() + - '" was defined but no callback was supplied. ' + - 'Supply a callback or explicitly skip the suite.', - 'callback', - 'function' - ); - } else if (!opts.fn && suite.pending) { - suites.shift(); - } - - return suite; - } - }, - - test: { - /** - * Exclusive test-case. - * - * @param {Object} mocha - * @param {Function} test - * @returns {*} - */ - only: function (mocha, test) { - if (mocha.options.forbidOnly) { - throw createForbiddenExclusivityError(mocha); - } - test.markOnly(); - return test; - }, - - /** - * Pending test case. - * - * @param {string} title - */ - skip: function (title) { - context.test(title); - } - } - }; - }; - - var Test$3 = test; - var EVENT_FILE_PRE_REQUIRE$2 = - suite.exports.constants.EVENT_FILE_PRE_REQUIRE; - - /** - * BDD-style interface: - * - * describe('Array', function() { - * describe('#indexOf()', function() { - * it('should return -1 when not present', function() { - * // ... - * }); - * - * it('should return the index when present', function() { - * // ... - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ - bdd.exports = function bddInterface(suite) { - var suites = [suite]; - - suite.on(EVENT_FILE_PRE_REQUIRE$2, function (context, file, mocha) { - var common$1 = common(suites, context, mocha); - - context.before = common$1.before; - context.after = common$1.after; - context.beforeEach = common$1.beforeEach; - context.afterEach = common$1.afterEach; - context.run = mocha.options.delay && common$1.runWithSuite(suite); - /** - * Describe a "suite" with the given `title` - * and callback `fn` containing nested suites - * and/or tests. - */ - - context.describe = context.context = function (title, fn) { - return common$1.suite.create({ - title, - file, - fn - }); - }; - - /** - * Pending describe. - */ - - context.xdescribe = - context.xcontext = - context.describe.skip = - function (title, fn) { - return common$1.suite.skip({ - title, - file, - fn - }); - }; - - /** - * Exclusive suite. - */ - - context.describe.only = function (title, fn) { - return common$1.suite.only({ - title, - file, - fn - }); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.it = context.specify = function (title, fn) { - var suite = suites[0]; - if (suite.isPending()) { - fn = null; - } - var test = new Test$3(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.it.only = function (title, fn) { - return common$1.test.only(mocha, context.it(title, fn)); - }; - - /** - * Pending test case. - */ - - context.xit = - context.xspecify = - context.it.skip = - function (title) { - return context.it(title); - }; - }); - }; - - bdd.exports.description = 'BDD or RSpec style [default]'; - - var tdd = {exports: {}}; - - var Test$2 = test; - var EVENT_FILE_PRE_REQUIRE$1 = - suite.exports.constants.EVENT_FILE_PRE_REQUIRE; - - /** - * TDD-style interface: - * - * suite('Array', function() { - * suite('#indexOf()', function() { - * suiteSetup(function() { - * - * }); - * - * test('should return -1 when not present', function() { - * - * }); - * - * test('should return the index when present', function() { - * - * }); - * - * suiteTeardown(function() { - * - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ - tdd.exports = function (suite) { - var suites = [suite]; - - suite.on(EVENT_FILE_PRE_REQUIRE$1, function (context, file, mocha) { - var common$1 = common(suites, context, mocha); - - context.setup = common$1.beforeEach; - context.teardown = common$1.afterEach; - context.suiteSetup = common$1.before; - context.suiteTeardown = common$1.after; - context.run = mocha.options.delay && common$1.runWithSuite(suite); - - /** - * Describe a "suite" with the given `title` and callback `fn` containing - * nested suites and/or tests. - */ - context.suite = function (title, fn) { - return common$1.suite.create({ - title, - file, - fn - }); - }; - - /** - * Pending suite. - */ - context.suite.skip = function (title, fn) { - return common$1.suite.skip({ - title, - file, - fn - }); - }; - - /** - * Exclusive test-case. - */ - context.suite.only = function (title, fn) { - return common$1.suite.only({ - title, - file, - fn - }); - }; - - /** - * Describe a specification or test-case with the given `title` and - * callback `fn` acting as a thunk. - */ - context.test = function (title, fn) { - var suite = suites[0]; - if (suite.isPending()) { - fn = null; - } - var test = new Test$2(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function (title, fn) { - return common$1.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common$1.test.skip; - }); - }; - - tdd.exports.description = - 'traditional "suite"/"test" instead of BDD\'s "describe"/"it"'; - - var qunit = {exports: {}}; - - var Test$1 = test; - var EVENT_FILE_PRE_REQUIRE = - suite.exports.constants.EVENT_FILE_PRE_REQUIRE; - - /** - * QUnit-style interface: - * - * suite('Array'); - * - * test('#length', function() { - * var arr = [1,2,3]; - * ok(arr.length == 3); - * }); - * - * test('#indexOf()', function() { - * var arr = [1,2,3]; - * ok(arr.indexOf(1) == 0); - * ok(arr.indexOf(2) == 1); - * ok(arr.indexOf(3) == 2); - * }); - * - * suite('String'); - * - * test('#length', function() { - * ok('foo'.length == 3); - * }); - * - * @param {Suite} suite Root suite. - */ - qunit.exports = function qUnitInterface(suite) { - var suites = [suite]; - - suite.on(EVENT_FILE_PRE_REQUIRE, function (context, file, mocha) { - var common$1 = common(suites, context, mocha); - - context.before = common$1.before; - context.after = common$1.after; - context.beforeEach = common$1.beforeEach; - context.afterEach = common$1.afterEach; - context.run = mocha.options.delay && common$1.runWithSuite(suite); - /** - * Describe a "suite" with the given `title`. - */ - - context.suite = function (title) { - if (suites.length > 1) { - suites.shift(); - } - return common$1.suite.create({ - title, - file, - fn: false - }); - }; - - /** - * Exclusive Suite. - */ - - context.suite.only = function (title) { - if (suites.length > 1) { - suites.shift(); - } - return common$1.suite.only({ - title, - file, - fn: false - }); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.test = function (title, fn) { - var test = new Test$1(title, fn); - test.file = file; - suites[0].addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function (title, fn) { - return common$1.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common$1.test.skip; - }); - }; - - qunit.exports.description = 'QUnit style'; - - var exports$1 = {exports: {}}; - - var Suite = suite.exports; - var Test = test; - - /** - * Exports-style (as Node.js module) interface: - * - * exports.Array = { - * '#indexOf()': { - * 'should return -1 when the value is not present': function() { - * - * }, - * - * 'should return the correct index when the value is present': function() { - * - * } - * } - * }; - * - * @param {Suite} suite Root suite. - */ - exports$1.exports = function (suite) { - var suites = [suite]; - - suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit); - - function visit(obj, file) { - var suite; - for (var key in obj) { - if (typeof obj[key] === 'function') { - var fn = obj[key]; - switch (key) { - case 'before': - suites[0].beforeAll(fn); - break; - case 'after': - suites[0].afterAll(fn); - break; - case 'beforeEach': - suites[0].beforeEach(fn); - break; - case 'afterEach': - suites[0].afterEach(fn); - break; - default: - var test = new Test(key, fn); - test.file = file; - suites[0].addTest(test); - } - } else { - suite = Suite.create(suites[0], key); - suites.unshift(suite); - visit(obj[key], file); - suites.shift(); - } - } - } - }; - - exports$1.exports.description = 'Node.js module ("exports") style'; - - interfaces.bdd = bdd.exports; - interfaces.tdd = tdd.exports; - interfaces.qunit = qunit.exports; - interfaces.exports = exports$1.exports; - - /** - * @module Context - */ - /** - * Expose `Context`. - */ - - var context = Context; - - /** - * Initialize a new `Context`. - * - * @private - */ - function Context() {} - - /** - * Set or get the context `Runnable` to `runnable`. - * - * @private - * @param {Runnable} runnable - * @return {Context} context - */ - Context.prototype.runnable = function (runnable) { - if (!arguments.length) { - return this._runnable; - } - this.test = this._runnable = runnable; - return this; - }; - - /** - * Set or get test timeout `ms`. - * - * @private - * @param {number} ms - * @return {Context} self - */ - Context.prototype.timeout = function (ms) { - if (!arguments.length) { - return this.runnable().timeout(); - } - this.runnable().timeout(ms); - return this; - }; - - /** - * Set or get test slowness threshold `ms`. - * - * @private - * @param {number} ms - * @return {Context} self - */ - Context.prototype.slow = function (ms) { - if (!arguments.length) { - return this.runnable().slow(); - } - this.runnable().slow(ms); - return this; - }; - - /** - * Mark a test as skipped. - * - * @private - * @throws Pending - */ - Context.prototype.skip = function () { - this.runnable().skip(); - }; - - /** - * Set or get a number of allowed retries on failed tests - * - * @private - * @param {number} n - * @return {Context} self - */ - Context.prototype.retries = function (n) { - if (!arguments.length) { - return this.runnable().retries(); - } - this.runnable().retries(n); - return this; - }; - - var name = "mocha"; - var version = "10.2.0"; - var homepage = "https://mochajs.org/"; - var notifyLogo = "https://ibin.co/4QuRuGjXvl36.png"; - var require$$17 = { - name: name, - version: version, - homepage: homepage, - notifyLogo: notifyLogo - }; - - (function (module, exports) { - - /*! - * mocha - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - - var escapeRe = escapeStringRegexp; - var path = require$$1; - var builtinReporters = reporters; - var utils = utils$3; - var mocharc = require$$4; - var Suite = suite.exports; - var esmUtils = require$$18; - var createStatsCollector = statsCollector; - const { - createInvalidReporterError, - createInvalidInterfaceError, - createMochaInstanceAlreadyDisposedError, - createMochaInstanceAlreadyRunningError, - createUnsupportedError - } = errors$2; - const {EVENT_FILE_PRE_REQUIRE, EVENT_FILE_POST_REQUIRE, EVENT_FILE_REQUIRE} = - Suite.constants; - var debug = browser.exports('mocha:mocha'); - - exports = module.exports = Mocha; - - /** - * A Mocha instance is a finite state machine. - * These are the states it can be in. - * @private - */ - var mochaStates = utils.defineConstants({ - /** - * Initial state of the mocha instance - * @private - */ - INIT: 'init', - /** - * Mocha instance is running tests - * @private - */ - RUNNING: 'running', - /** - * Mocha instance is done running tests and references to test functions and hooks are cleaned. - * You can reset this state by unloading the test files. - * @private - */ - REFERENCES_CLEANED: 'referencesCleaned', - /** - * Mocha instance is disposed and can no longer be used. - * @private - */ - DISPOSED: 'disposed' - }); - - /** - * To require local UIs and reporters when running in node. - */ - - if (!utils.isBrowser() && typeof module.paths !== 'undefined') { - var cwd = utils.cwd(); - module.paths.push(cwd, path.join(cwd, 'node_modules')); - } - - /** - * Expose internals. - * @private - */ - - exports.utils = utils; - exports.interfaces = interfaces; - /** - * @public - * @memberof Mocha - */ - exports.reporters = builtinReporters; - exports.Runnable = runnable; - exports.Context = context; - /** - * - * @memberof Mocha - */ - exports.Runner = runner; - exports.Suite = Suite; - exports.Hook = hook; - exports.Test = test; - - let currentContext; - exports.afterEach = function (...args) { - return (currentContext.afterEach || currentContext.teardown).apply( - this, - args - ); - }; - exports.after = function (...args) { - return (currentContext.after || currentContext.suiteTeardown).apply( - this, - args - ); - }; - exports.beforeEach = function (...args) { - return (currentContext.beforeEach || currentContext.setup).apply(this, args); - }; - exports.before = function (...args) { - return (currentContext.before || currentContext.suiteSetup).apply(this, args); - }; - exports.describe = function (...args) { - return (currentContext.describe || currentContext.suite).apply(this, args); - }; - exports.describe.only = function (...args) { - return (currentContext.describe || currentContext.suite).only.apply( - this, - args - ); - }; - exports.describe.skip = function (...args) { - return (currentContext.describe || currentContext.suite).skip.apply( - this, - args - ); - }; - exports.it = function (...args) { - return (currentContext.it || currentContext.test).apply(this, args); - }; - exports.it.only = function (...args) { - return (currentContext.it || currentContext.test).only.apply(this, args); - }; - exports.it.skip = function (...args) { - return (currentContext.it || currentContext.test).skip.apply(this, args); - }; - exports.xdescribe = exports.describe.skip; - exports.xit = exports.it.skip; - exports.setup = exports.beforeEach; - exports.suiteSetup = exports.before; - exports.suiteTeardown = exports.after; - exports.suite = exports.describe; - exports.teardown = exports.afterEach; - exports.test = exports.it; - exports.run = function (...args) { - return currentContext.run.apply(this, args); - }; - - /** - * Constructs a new Mocha instance with `options`. - * - * @public - * @class Mocha - * @param {Object} [options] - Settings object. - * @param {boolean} [options.allowUncaught] - Propagate uncaught errors? - * @param {boolean} [options.asyncOnly] - Force `done` callback or promise? - * @param {boolean} [options.bail] - Bail after first test failure? - * @param {boolean} [options.checkLeaks] - Check for global variable leaks? - * @param {boolean} [options.color] - Color TTY output from reporter? - * @param {boolean} [options.delay] - Delay root suite execution? - * @param {boolean} [options.diff] - Show diff on failure? - * @param {boolean} [options.dryRun] - Report tests without running them? - * @param {boolean} [options.failZero] - Fail test run if zero tests? - * @param {string} [options.fgrep] - Test filter given string. - * @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite? - * @param {boolean} [options.forbidPending] - Pending tests fail the suite? - * @param {boolean} [options.fullTrace] - Full stacktrace upon failure? - * @param {string[]} [options.global] - Variables expected in global scope. - * @param {RegExp|string} [options.grep] - Test filter given regular expression. - * @param {boolean} [options.inlineDiffs] - Display inline diffs? - * @param {boolean} [options.invert] - Invert test filter matches? - * @param {boolean} [options.noHighlighting] - Disable syntax highlighting? - * @param {string|constructor} [options.reporter] - Reporter name or constructor. - * @param {Object} [options.reporterOption] - Reporter settings object. - * @param {number} [options.retries] - Number of times to retry failed tests. - * @param {number} [options.slow] - Slow threshold value. - * @param {number|string} [options.timeout] - Timeout threshold value. - * @param {string} [options.ui] - Interface name. - * @param {boolean} [options.parallel] - Run jobs in parallel. - * @param {number} [options.jobs] - Max number of worker processes for parallel runs. - * @param {MochaRootHookObject} [options.rootHooks] - Hooks to bootstrap the root suite with. - * @param {string[]} [options.require] - Pathname of `rootHooks` plugin for parallel runs. - * @param {boolean} [options.isWorker] - Should be `true` if `Mocha` process is running in a worker process. - */ - function Mocha(options = {}) { - options = {...mocharc, ...options}; - this.files = []; - this.options = options; - // root suite - this.suite = new exports.Suite('', new exports.Context(), true); - this._cleanReferencesAfterRun = true; - this._state = mochaStates.INIT; - - this.grep(options.grep) - .fgrep(options.fgrep) - .ui(options.ui) - .reporter( - options.reporter, - options.reporterOption || options.reporterOptions // for backwards compatibility - ) - .slow(options.slow) - .global(options.global); - - // this guard exists because Suite#timeout does not consider `undefined` to be valid input - if (typeof options.timeout !== 'undefined') { - this.timeout(options.timeout === false ? 0 : options.timeout); - } - - if ('retries' in options) { - this.retries(options.retries); - } - - [ - 'allowUncaught', - 'asyncOnly', - 'bail', - 'checkLeaks', - 'color', - 'delay', - 'diff', - 'dryRun', - 'failZero', - 'forbidOnly', - 'forbidPending', - 'fullTrace', - 'inlineDiffs', - 'invert' - ].forEach(function (opt) { - if (options[opt]) { - this[opt](); - } - }, this); - - if (options.rootHooks) { - this.rootHooks(options.rootHooks); - } - - /** - * The class which we'll instantiate in {@link Mocha#run}. Defaults to - * {@link Runner} in serial mode; changes in parallel mode. - * @memberof Mocha - * @private - */ - this._runnerClass = exports.Runner; - - /** - * Whether or not to call {@link Mocha#loadFiles} implicitly when calling - * {@link Mocha#run}. If this is `true`, then it's up to the consumer to call - * {@link Mocha#loadFiles} _or_ {@link Mocha#loadFilesAsync}. - * @private - * @memberof Mocha - */ - this._lazyLoadFiles = false; - - /** - * It's useful for a Mocha instance to know if it's running in a worker process. - * We could derive this via other means, but it's helpful to have a flag to refer to. - * @memberof Mocha - * @private - */ - this.isWorker = Boolean(options.isWorker); - - this.globalSetup(options.globalSetup) - .globalTeardown(options.globalTeardown) - .enableGlobalSetup(options.enableGlobalSetup) - .enableGlobalTeardown(options.enableGlobalTeardown); - - if ( - options.parallel && - (typeof options.jobs === 'undefined' || options.jobs > 1) - ) { - debug('attempting to enable parallel mode'); - this.parallelMode(true); - } - } - - /** - * Enables or disables bailing on the first failure. - * - * @public - * @see [CLI option](../#-bail-b) - * @param {boolean} [bail=true] - Whether to bail on first error. - * @returns {Mocha} this - * @chainable - */ - Mocha.prototype.bail = function (bail) { - this.suite.bail(bail !== false); - return this; - }; - - /** - * @summary - * Adds `file` to be loaded for execution. - * - * @description - * Useful for generic setup code that must be included within test suite. - * - * @public - * @see [CLI option](../#-file-filedirectoryglob) - * @param {string} file - Pathname of file to be loaded. - * @returns {Mocha} this - * @chainable - */ - Mocha.prototype.addFile = function (file) { - this.files.push(file); - return this; - }; - - /** - * Sets reporter to `reporter`, defaults to "spec". - * - * @public - * @see [CLI option](../#-reporter-name-r-name) - * @see [Reporters](../#reporters) - * @param {String|Function} reporterName - Reporter name or constructor. - * @param {Object} [reporterOptions] - Options used to configure the reporter. - * @returns {Mocha} this - * @chainable - * @throws {Error} if requested reporter cannot be loaded - * @example - * - * // Use XUnit reporter and direct its output to file - * mocha.reporter('xunit', { output: '/path/to/testspec.xunit.xml' }); - */ - Mocha.prototype.reporter = function (reporterName, reporterOptions) { - if (typeof reporterName === 'function') { - this._reporter = reporterName; - } else { - reporterName = reporterName || 'spec'; - var reporter; - // Try to load a built-in reporter. - if (builtinReporters[reporterName]) { - reporter = builtinReporters[reporterName]; - } - // Try to load reporters from process.cwd() and node_modules - if (!reporter) { - let foundReporter; - try { - foundReporter = /*require.resolve*/(__webpack_require__(9).resolve(reporterName)); - reporter = commonjsRequire(foundReporter); - } catch (err) { - if (foundReporter) { - throw createInvalidReporterError(err.message, foundReporter); - } - // Try to load reporters from a cwd-relative path - try { - reporter = commonjsRequire(path.resolve(reporterName)); - } catch (e) { - throw createInvalidReporterError(e.message, reporterName); - } - } - } - this._reporter = reporter; - } - this.options.reporterOption = reporterOptions; - // alias option name is used in built-in reporters xunit/tap/progress - this.options.reporterOptions = reporterOptions; - return this; - }; - - /** - * Sets test UI `name`, defaults to "bdd". - * - * @public - * @see [CLI option](../#-ui-name-u-name) - * @see [Interface DSLs](../#interfaces) - * @param {string|Function} [ui=bdd] - Interface name or class. - * @returns {Mocha} this - * @chainable - * @throws {Error} if requested interface cannot be loaded - */ - Mocha.prototype.ui = function (ui) { - var bindInterface; - if (typeof ui === 'function') { - bindInterface = ui; - } else { - ui = ui || 'bdd'; - bindInterface = exports.interfaces[ui]; - if (!bindInterface) { - try { - bindInterface = commonjsRequire(ui); - } catch (err) { - throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui); - } - } - } - bindInterface(this.suite); - - this.suite.on(EVENT_FILE_PRE_REQUIRE, function (context) { - currentContext = context; - }); - - return this; - }; - - /** - * Loads `files` prior to execution. Does not support ES Modules. - * - * @description - * The implementation relies on Node's `require` to execute - * the test interface functions and will be subject to its cache. - * Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync. - * - * @private - * @see {@link Mocha#addFile} - * @see {@link Mocha#run} - * @see {@link Mocha#unloadFiles} - * @see {@link Mocha#loadFilesAsync} - * @param {Function} [fn] - Callback invoked upon completion. - */ - Mocha.prototype.loadFiles = function (fn) { - var self = this; - var suite = this.suite; - this.files.forEach(function (file) { - file = path.resolve(file); - suite.emit(EVENT_FILE_PRE_REQUIRE, commonjsGlobal, file, self); - suite.emit(EVENT_FILE_REQUIRE, commonjsRequire(file), file, self); - suite.emit(EVENT_FILE_POST_REQUIRE, commonjsGlobal, file, self); - }); - fn && fn(); - }; - - /** - * Loads `files` prior to execution. Supports Node ES Modules. - * - * @description - * The implementation relies on Node's `require` and `import` to execute - * the test interface functions and will be subject to its cache. - * Supports both CJS and ESM modules. - * - * @public - * @see {@link Mocha#addFile} - * @see {@link Mocha#run} - * @see {@link Mocha#unloadFiles} - * @param {Object} [options] - Settings object. - * @param {Function} [options.esmDecorator] - Function invoked on esm module name right before importing it. By default will passthrough as is. - * @returns {Promise} - * @example - * - * // loads ESM (and CJS) test files asynchronously, then runs root suite - * mocha.loadFilesAsync() - * .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0)) - * .catch(() => process.exitCode = 1); - */ - Mocha.prototype.loadFilesAsync = function ({esmDecorator} = {}) { - var self = this; - var suite = this.suite; - this.lazyLoadFiles(true); - - return esmUtils.loadFilesAsync( - this.files, - function (file) { - suite.emit(EVENT_FILE_PRE_REQUIRE, commonjsGlobal, file, self); - }, - function (file, resultModule) { - suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self); - suite.emit(EVENT_FILE_POST_REQUIRE, commonjsGlobal, file, self); - }, - esmDecorator - ); - }; - - /** - * Removes a previously loaded file from Node's `require` cache. - * - * @private - * @static - * @see {@link Mocha#unloadFiles} - * @param {string} file - Pathname of file to be unloaded. - */ - Mocha.unloadFile = function (file) { - if (utils.isBrowser()) { - throw createUnsupportedError( - 'unloadFile() is only supported in a Node.js environment' - ); - } - return require$$18.unloadFile(file); - }; - - /** - * Unloads `files` from Node's `require` cache. - * - * @description - * This allows required files to be "freshly" reloaded, providing the ability - * to reuse a Mocha instance programmatically. - * Note: does not clear ESM module files from the cache - * - * Intended for consumers — not used internally - * - * @public - * @see {@link Mocha#run} - * @returns {Mocha} this - * @chainable - */ - Mocha.prototype.unloadFiles = function () { - if (this._state === mochaStates.DISPOSED) { - throw createMochaInstanceAlreadyDisposedError( - 'Mocha instance is already disposed, it cannot be used again.', - this._cleanReferencesAfterRun, - this - ); - } - - this.files.forEach(function (file) { - Mocha.unloadFile(file); - }); - this._state = mochaStates.INIT; - return this; - }; - - /** - * Sets `grep` filter after escaping RegExp special characters. - * - * @public - * @see {@link Mocha#grep} - * @param {string} str - Value to be converted to a regexp. - * @returns {Mocha} this - * @chainable - * @example - * - * // Select tests whose full title begins with `"foo"` followed by a period - * mocha.fgrep('foo.'); - */ - Mocha.prototype.fgrep = function (str) { - if (!str) { - return this; - } - return this.grep(new RegExp(escapeRe(str))); - }; - - /** - * @summary - * Sets `grep` filter used to select specific tests for execution. - * - * @description - * If `re` is a regexp-like string, it will be converted to regexp. - * The regexp is tested against the full title of each test (i.e., the - * name of the test preceded by titles of each its ancestral suites). - * As such, using an exact-match fixed pattern against the - * test name itself will not yield any matches. - *
    - * Previous filter value will be overwritten on each call! - * - * @public - * @see [CLI option](../#-grep-regexp-g-regexp) - * @see {@link Mocha#fgrep} - * @see {@link Mocha#invert} - * @param {RegExp|String} re - Regular expression used to select tests. - * @return {Mocha} this - * @chainable - * @example - * - * // Select tests whose full title contains `"match"`, ignoring case - * mocha.grep(/match/i); - * @example - * - * // Same as above but with regexp-like string argument - * mocha.grep('/match/i'); - * @example - * - * // ## Anti-example - * // Given embedded test `it('only-this-test')`... - * mocha.grep('/^only-this-test$/'); // NO! Use `.only()` to do this! - */ - Mocha.prototype.grep = function (re) { - if (utils.isString(re)) { - // extract args if it's regex-like, i.e: [string, pattern, flag] - var arg = re.match(/^\/(.*)\/([gimy]{0,4})$|.*/); - this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); - } else { - this.options.grep = re; - } - return this; - }; - - /** - * Inverts `grep` matches. - * - * @public - * @see {@link Mocha#grep} - * @return {Mocha} this - * @chainable - * @example - * - * // Select tests whose full title does *not* contain `"match"`, ignoring case - * mocha.grep(/match/i).invert(); - */ - Mocha.prototype.invert = function () { - this.options.invert = true; - return this; - }; - - /** - * Enables or disables checking for global variables leaked while running tests. - * - * @public - * @see [CLI option](../#-check-leaks) - * @param {boolean} [checkLeaks=true] - Whether to check for global variable leaks. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.checkLeaks = function (checkLeaks) { - this.options.checkLeaks = checkLeaks !== false; - return this; - }; - - /** - * Enables or disables whether or not to dispose after each test run. - * Disable this to ensure you can run the test suite multiple times. - * If disabled, be sure to dispose mocha when you're done to prevent memory leaks. - * @public - * @see {@link Mocha#dispose} - * @param {boolean} cleanReferencesAfterRun - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.cleanReferencesAfterRun = function (cleanReferencesAfterRun) { - this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false; - return this; - }; - - /** - * Manually dispose this mocha instance. Mark this instance as `disposed` and unable to run more tests. - * It also removes function references to tests functions and hooks, so variables trapped in closures can be cleaned by the garbage collector. - * @public - */ - Mocha.prototype.dispose = function () { - if (this._state === mochaStates.RUNNING) { - throw createMochaInstanceAlreadyRunningError( - 'Cannot dispose while the mocha instance is still running tests.' - ); - } - this.unloadFiles(); - this._previousRunner && this._previousRunner.dispose(); - this.suite.dispose(); - this._state = mochaStates.DISPOSED; - }; - - /** - * Displays full stack trace upon test failure. - * - * @public - * @see [CLI option](../#-full-trace) - * @param {boolean} [fullTrace=true] - Whether to print full stacktrace upon failure. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.fullTrace = function (fullTrace) { - this.options.fullTrace = fullTrace !== false; - return this; - }; - - /** - * Specifies whitelist of variable names to be expected in global scope. - * - * @public - * @see [CLI option](../#-global-variable-name) - * @see {@link Mocha#checkLeaks} - * @param {String[]|String} global - Accepted global variable name(s). - * @return {Mocha} this - * @chainable - * @example - * - * // Specify variables to be expected in global scope - * mocha.global(['jQuery', 'MyLib']); - */ - Mocha.prototype.global = function (global) { - this.options.global = (this.options.global || []) - .concat(global) - .filter(Boolean) - .filter(function (elt, idx, arr) { - return arr.indexOf(elt) === idx; - }); - return this; - }; - // for backwards compatibility, 'globals' is an alias of 'global' - Mocha.prototype.globals = Mocha.prototype.global; - - /** - * Enables or disables TTY color output by screen-oriented reporters. - * - * @public - * @see [CLI option](../#-color-c-colors) - * @param {boolean} [color=true] - Whether to enable color output. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.color = function (color) { - this.options.color = color !== false; - return this; - }; - - /** - * Enables or disables reporter to use inline diffs (rather than +/-) - * in test failure output. - * - * @public - * @see [CLI option](../#-inline-diffs) - * @param {boolean} [inlineDiffs=true] - Whether to use inline diffs. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.inlineDiffs = function (inlineDiffs) { - this.options.inlineDiffs = inlineDiffs !== false; - return this; - }; - - /** - * Enables or disables reporter to include diff in test failure output. - * - * @public - * @see [CLI option](../#-diff) - * @param {boolean} [diff=true] - Whether to show diff on failure. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.diff = function (diff) { - this.options.diff = diff !== false; - return this; - }; - - /** - * @summary - * Sets timeout threshold value. - * - * @description - * A string argument can use shorthand (such as "2s") and will be converted. - * If the value is `0`, timeouts will be disabled. - * - * @public - * @see [CLI option](../#-timeout-ms-t-ms) - * @see [Timeouts](../#timeouts) - * @param {number|string} msecs - Timeout threshold value. - * @return {Mocha} this - * @chainable - * @example - * - * // Sets timeout to one second - * mocha.timeout(1000); - * @example - * - * // Same as above but using string argument - * mocha.timeout('1s'); - */ - Mocha.prototype.timeout = function (msecs) { - this.suite.timeout(msecs); - return this; - }; - - /** - * Sets the number of times to retry failed tests. - * - * @public - * @see [CLI option](../#-retries-n) - * @see [Retry Tests](../#retry-tests) - * @param {number} retry - Number of times to retry failed tests. - * @return {Mocha} this - * @chainable - * @example - * - * // Allow any failed test to retry one more time - * mocha.retries(1); - */ - Mocha.prototype.retries = function (retry) { - this.suite.retries(retry); - return this; - }; - - /** - * Sets slowness threshold value. - * - * @public - * @see [CLI option](../#-slow-ms-s-ms) - * @param {number} msecs - Slowness threshold value. - * @return {Mocha} this - * @chainable - * @example - * - * // Sets "slow" threshold to half a second - * mocha.slow(500); - * @example - * - * // Same as above but using string argument - * mocha.slow('0.5s'); - */ - Mocha.prototype.slow = function (msecs) { - this.suite.slow(msecs); - return this; - }; - - /** - * Forces all tests to either accept a `done` callback or return a promise. - * - * @public - * @see [CLI option](../#-async-only-a) - * @param {boolean} [asyncOnly=true] - Whether to force `done` callback or promise. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.asyncOnly = function (asyncOnly) { - this.options.asyncOnly = asyncOnly !== false; - return this; - }; - - /** - * Disables syntax highlighting (in browser). - * - * @public - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.noHighlighting = function () { - this.options.noHighlighting = true; - return this; - }; - - /** - * Enables or disables uncaught errors to propagate. - * - * @public - * @see [CLI option](../#-allow-uncaught) - * @param {boolean} [allowUncaught=true] - Whether to propagate uncaught errors. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.allowUncaught = function (allowUncaught) { - this.options.allowUncaught = allowUncaught !== false; - return this; - }; - - /** - * @summary - * Delays root suite execution. - * - * @description - * Used to perform async operations before any suites are run. - * - * @public - * @see [delayed root suite](../#delayed-root-suite) - * @returns {Mocha} this - * @chainable - */ - Mocha.prototype.delay = function delay() { - this.options.delay = true; - return this; - }; - - /** - * Enables or disables running tests in dry-run mode. - * - * @public - * @see [CLI option](../#-dry-run) - * @param {boolean} [dryRun=true] - Whether to activate dry-run mode. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.dryRun = function (dryRun) { - this.options.dryRun = dryRun !== false; - return this; - }; - - /** - * Fails test run if no tests encountered with exit-code 1. - * - * @public - * @see [CLI option](../#-fail-zero) - * @param {boolean} [failZero=true] - Whether to fail test run. - * @return {Mocha} this - * @chainable - */ - Mocha.prototype.failZero = function (failZero) { - this.options.failZero = failZero !== false; - return this; - }; - - /** - * Causes tests marked `only` to fail the suite. - * - * @public - * @see [CLI option](../#-forbid-only) - * @param {boolean} [forbidOnly=true] - Whether tests marked `only` fail the suite. - * @returns {Mocha} this - * @chainable - */ - Mocha.prototype.forbidOnly = function (forbidOnly) { - this.options.forbidOnly = forbidOnly !== false; - return this; - }; - - /** - * Causes pending tests and tests marked `skip` to fail the suite. - * - * @public - * @see [CLI option](../#-forbid-pending) - * @param {boolean} [forbidPending=true] - Whether pending tests fail the suite. - * @returns {Mocha} this - * @chainable - */ - Mocha.prototype.forbidPending = function (forbidPending) { - this.options.forbidPending = forbidPending !== false; - return this; - }; - - /** - * Throws an error if mocha is in the wrong state to be able to transition to a "running" state. - * @private - */ - Mocha.prototype._guardRunningStateTransition = function () { - if (this._state === mochaStates.RUNNING) { - throw createMochaInstanceAlreadyRunningError( - 'Mocha instance is currently running tests, cannot start a next test run until this one is done', - this - ); - } - if ( - this._state === mochaStates.DISPOSED || - this._state === mochaStates.REFERENCES_CLEANED - ) { - throw createMochaInstanceAlreadyDisposedError( - 'Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.', - this._cleanReferencesAfterRun, - this - ); - } - }; - - /** - * Mocha version as specified by "package.json". - * - * @name Mocha#version - * @type string - * @readonly - */ - Object.defineProperty(Mocha.prototype, 'version', { - value: require$$17.version, - configurable: false, - enumerable: true, - writable: false - }); - - /** - * Callback to be invoked when test execution is complete. - * - * @private - * @callback DoneCB - * @param {number} failures - Number of failures that occurred. - */ - - /** - * Runs root suite and invokes `fn()` when complete. - * - * @description - * To run tests multiple times (or to run tests in files that are - * already in the `require` cache), make sure to clear them from - * the cache first! - * - * @public - * @see {@link Mocha#unloadFiles} - * @see {@link Runner#run} - * @param {DoneCB} [fn] - Callback invoked when test execution completed. - * @returns {Runner} runner instance - * @example - * - * // exit with non-zero status if there were test failures - * mocha.run(failures => process.exitCode = failures ? 1 : 0); - */ - Mocha.prototype.run = function (fn) { - this._guardRunningStateTransition(); - this._state = mochaStates.RUNNING; - if (this._previousRunner) { - this._previousRunner.dispose(); - this.suite.reset(); - } - if (this.files.length && !this._lazyLoadFiles) { - this.loadFiles(); - } - var suite = this.suite; - var options = this.options; - options.files = this.files; - const runner = new this._runnerClass(suite, { - cleanReferencesAfterRun: this._cleanReferencesAfterRun, - delay: options.delay, - dryRun: options.dryRun, - failZero: options.failZero - }); - createStatsCollector(runner); - var reporter = new this._reporter(runner, options); - runner.checkLeaks = options.checkLeaks === true; - runner.fullStackTrace = options.fullTrace; - runner.asyncOnly = options.asyncOnly; - runner.allowUncaught = options.allowUncaught; - runner.forbidOnly = options.forbidOnly; - runner.forbidPending = options.forbidPending; - if (options.grep) { - runner.grep(options.grep, options.invert); - } - if (options.global) { - runner.globals(options.global); - } - if (options.color !== undefined) { - exports.reporters.Base.useColors = options.color; - } - exports.reporters.Base.inlineDiffs = options.inlineDiffs; - exports.reporters.Base.hideDiff = !options.diff; - - const done = failures => { - this._previousRunner = runner; - this._state = this._cleanReferencesAfterRun - ? mochaStates.REFERENCES_CLEANED - : mochaStates.INIT; - fn = fn || utils.noop; - if (typeof reporter.done === 'function') { - reporter.done(failures, fn); - } else { - fn(failures); - } - }; - - const runAsync = async runner => { - const context = - this.options.enableGlobalSetup && this.hasGlobalSetupFixtures() - ? await this.runGlobalSetup(runner) - : {}; - const failureCount = await runner.runAsync({ - files: this.files, - options - }); - if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) { - await this.runGlobalTeardown(runner, {context}); - } - return failureCount; - }; - - // no "catch" here is intentional. errors coming out of - // Runner#run are considered uncaught/unhandled and caught - // by the `process` event listeners. - // also: returning anything other than `runner` would be a breaking - // change - runAsync(runner).then(done); - - return runner; - }; - - /** - * Assigns hooks to the root suite - * @param {MochaRootHookObject} [hooks] - Hooks to assign to root suite - * @chainable - */ - Mocha.prototype.rootHooks = function rootHooks({ - beforeAll = [], - beforeEach = [], - afterAll = [], - afterEach = [] - } = {}) { - beforeAll = utils.castArray(beforeAll); - beforeEach = utils.castArray(beforeEach); - afterAll = utils.castArray(afterAll); - afterEach = utils.castArray(afterEach); - beforeAll.forEach(hook => { - this.suite.beforeAll(hook); - }); - beforeEach.forEach(hook => { - this.suite.beforeEach(hook); - }); - afterAll.forEach(hook => { - this.suite.afterAll(hook); - }); - afterEach.forEach(hook => { - this.suite.afterEach(hook); - }); - return this; - }; - - /** - * Toggles parallel mode. - * - * Must be run before calling {@link Mocha#run}. Changes the `Runner` class to - * use; also enables lazy file loading if not already done so. - * - * Warning: when passed `false` and lazy loading has been enabled _via any means_ (including calling `parallelMode(true)`), this method will _not_ disable lazy loading. Lazy loading is a prerequisite for parallel - * mode, but parallel mode is _not_ a prerequisite for lazy loading! - * @param {boolean} [enable] - If `true`, enable; otherwise disable. - * @throws If run in browser - * @throws If Mocha not in `INIT` state - * @returns {Mocha} - * @chainable - * @public - */ - Mocha.prototype.parallelMode = function parallelMode(enable = true) { - if (utils.isBrowser()) { - throw createUnsupportedError('parallel mode is only supported in Node.js'); - } - const parallel = Boolean(enable); - if ( - parallel === this.options.parallel && - this._lazyLoadFiles && - this._runnerClass !== exports.Runner - ) { - return this; - } - if (this._state !== mochaStates.INIT) { - throw createUnsupportedError( - 'cannot change parallel mode after having called run()' - ); - } - this.options.parallel = parallel; - - // swap Runner class - this._runnerClass = parallel - ? require$$18 - : exports.Runner; - - // lazyLoadFiles may have been set `true` otherwise (for ESM loading), - // so keep `true` if so. - return this.lazyLoadFiles(this._lazyLoadFiles || parallel); - }; - - /** - * Disables implicit call to {@link Mocha#loadFiles} in {@link Mocha#run}. This - * setting is used by watch mode, parallel mode, and for loading ESM files. - * @todo This should throw if we've already loaded files; such behavior - * necessitates adding a new state. - * @param {boolean} [enable] - If `true`, disable eager loading of files in - * {@link Mocha#run} - * @chainable - * @public - */ - Mocha.prototype.lazyLoadFiles = function lazyLoadFiles(enable) { - this._lazyLoadFiles = enable === true; - debug('set lazy load to %s', enable); - return this; - }; - - /** - * Configures one or more global setup fixtures. - * - * If given no parameters, _unsets_ any previously-set fixtures. - * @chainable - * @public - * @param {MochaGlobalFixture|MochaGlobalFixture[]} [setupFns] - Global setup fixture(s) - * @returns {Mocha} - */ - Mocha.prototype.globalSetup = function globalSetup(setupFns = []) { - setupFns = utils.castArray(setupFns); - this.options.globalSetup = setupFns; - debug('configured %d global setup functions', setupFns.length); - return this; - }; - - /** - * Configures one or more global teardown fixtures. - * - * If given no parameters, _unsets_ any previously-set fixtures. - * @chainable - * @public - * @param {MochaGlobalFixture|MochaGlobalFixture[]} [teardownFns] - Global teardown fixture(s) - * @returns {Mocha} - */ - Mocha.prototype.globalTeardown = function globalTeardown(teardownFns = []) { - teardownFns = utils.castArray(teardownFns); - this.options.globalTeardown = teardownFns; - debug('configured %d global teardown functions', teardownFns.length); - return this; - }; - - /** - * Run any global setup fixtures sequentially, if any. - * - * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalSetup` option is `false`; see {@link Mocha#enableGlobalSetup}. - * - * The context object this function resolves with should be consumed by {@link Mocha#runGlobalTeardown}. - * @param {object} [context] - Context object if already have one - * @public - * @returns {Promise} Context object - */ - Mocha.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) { - const {globalSetup} = this.options; - if (globalSetup && globalSetup.length) { - debug('run(): global setup starting'); - await this._runGlobalFixtures(globalSetup, context); - debug('run(): global setup complete'); - } - return context; - }; - - /** - * Run any global teardown fixtures sequentially, if any. - * - * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalTeardown` option is `false`; see {@link Mocha#enableGlobalTeardown}. - * - * Should be called with context object returned by {@link Mocha#runGlobalSetup}, if applicable. - * @param {object} [context] - Context object if already have one - * @public - * @returns {Promise} Context object - */ - Mocha.prototype.runGlobalTeardown = async function runGlobalTeardown( - context = {} - ) { - const {globalTeardown} = this.options; - if (globalTeardown && globalTeardown.length) { - debug('run(): global teardown starting'); - await this._runGlobalFixtures(globalTeardown, context); - } - debug('run(): global teardown complete'); - return context; - }; - - /** - * Run global fixtures sequentially with context `context` - * @private - * @param {MochaGlobalFixture[]} [fixtureFns] - Fixtures to run - * @param {object} [context] - context object - * @returns {Promise} context object - */ - Mocha.prototype._runGlobalFixtures = async function _runGlobalFixtures( - fixtureFns = [], - context = {} - ) { - for await (const fixtureFn of fixtureFns) { - await fixtureFn.call(context); - } - return context; - }; - - /** - * Toggle execution of any global setup fixture(s) - * - * @chainable - * @public - * @param {boolean } [enabled=true] - If `false`, do not run global setup fixture - * @returns {Mocha} - */ - Mocha.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) { - this.options.enableGlobalSetup = Boolean(enabled); - return this; - }; - - /** - * Toggle execution of any global teardown fixture(s) - * - * @chainable - * @public - * @param {boolean } [enabled=true] - If `false`, do not run global teardown fixture - * @returns {Mocha} - */ - Mocha.prototype.enableGlobalTeardown = function enableGlobalTeardown( - enabled = true - ) { - this.options.enableGlobalTeardown = Boolean(enabled); - return this; - }; - - /** - * Returns `true` if one or more global setup fixtures have been supplied. - * @public - * @returns {boolean} - */ - Mocha.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() { - return Boolean(this.options.globalSetup.length); - }; - - /** - * Returns `true` if one or more global teardown fixtures have been supplied. - * @public - * @returns {boolean} - */ - Mocha.prototype.hasGlobalTeardownFixtures = - function hasGlobalTeardownFixtures() { - return Boolean(this.options.globalTeardown.length); - }; - - /** - * An alternative way to define root hooks that works with parallel runs. - * @typedef {Object} MochaRootHookObject - * @property {Function|Function[]} [beforeAll] - "Before all" hook(s) - * @property {Function|Function[]} [beforeEach] - "Before each" hook(s) - * @property {Function|Function[]} [afterAll] - "After all" hook(s) - * @property {Function|Function[]} [afterEach] - "After each" hook(s) - */ - - /** - * An function that returns a {@link MochaRootHookObject}, either sync or async. - @callback MochaRootHookFunction - * @returns {MochaRootHookObject|Promise} - */ - - /** - * A function that's invoked _once_ which is either sync or async. - * Can be a "teardown" or "setup". These will all share the same context. - * @callback MochaGlobalFixture - * @returns {void|Promise} - */ - - /** - * An object making up all necessary parts of a plugin loader and aggregator - * @typedef {Object} PluginDefinition - * @property {string} exportName - Named export to use - * @property {string} [optionName] - Option name for Mocha constructor (use `exportName` if omitted) - * @property {PluginValidator} [validate] - Validator function - * @property {PluginFinalizer} [finalize] - Finalizer/aggregator function - */ - - /** - * A (sync) function to assert a user-supplied plugin implementation is valid. - * - * Defined in a {@link PluginDefinition}. - - * @callback PluginValidator - * @param {*} value - Value to check - * @this {PluginDefinition} - * @returns {void} - */ - - /** - * A function to finalize plugins impls of a particular ilk - * @callback PluginFinalizer - * @param {Array<*>} impls - User-supplied implementations - * @returns {Promise<*>|*} - */ - }(mocha$1, mocha$1.exports)); - - /* eslint no-unused-vars: off */ - /* eslint-env commonjs */ - - /** - * Shim process.stdout. - */ - - process.stdout = browserStdout({label: false}); - - var parseQuery = parseQuery$1; - var highlightTags = highlightTags$1; - var Mocha = mocha$1.exports; - - /** - * Create a Mocha instance. - * - * @return {undefined} - */ - - var mocha = new Mocha({reporter: 'html'}); - - /** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - - var Date$1 = commonjsGlobal.Date; - var setTimeout$1 = commonjsGlobal.setTimeout; - commonjsGlobal.setInterval; - commonjsGlobal.clearTimeout; - commonjsGlobal.clearInterval; - - var uncaughtExceptionHandlers = []; - - var originalOnerrorHandler = commonjsGlobal.onerror; - - /** - * Remove uncaughtException listener. - * Revert to original onerror handler if previously defined. - */ - - process.removeListener = function (e, fn) { - if (e === 'uncaughtException') { - if (originalOnerrorHandler) { - commonjsGlobal.onerror = originalOnerrorHandler; - } else { - commonjsGlobal.onerror = function () {}; - } - var i = uncaughtExceptionHandlers.indexOf(fn); - if (i !== -1) { - uncaughtExceptionHandlers.splice(i, 1); - } - } - }; - - /** - * Implements listenerCount for 'uncaughtException'. - */ - - process.listenerCount = function (name) { - if (name === 'uncaughtException') { - return uncaughtExceptionHandlers.length; - } - return 0; - }; - - /** - * Implements uncaughtException listener. - */ - - process.on = function (e, fn) { - if (e === 'uncaughtException') { - commonjsGlobal.onerror = function (err, url, line) { - fn(new Error(err + ' (' + url + ':' + line + ')')); - return !mocha.options.allowUncaught; - }; - uncaughtExceptionHandlers.push(fn); - } - }; - - process.listeners = function (e) { - if (e === 'uncaughtException') { - return uncaughtExceptionHandlers; - } - return []; - }; - - // The BDD UI is registered by default, but no UI will be functional in the - // browser without an explicit call to the overridden `mocha.ui` (see below). - // Ensure that this default UI does not expose its methods to the global scope. - mocha.suite.removeAllListeners('pre-require'); - - var immediateQueue = []; - var immediateTimeout; - - function timeslice() { - var immediateStart = new Date$1().getTime(); - while (immediateQueue.length && new Date$1().getTime() - immediateStart < 100) { - immediateQueue.shift()(); - } - if (immediateQueue.length) { - immediateTimeout = setTimeout$1(timeslice, 0); - } else { - immediateTimeout = null; - } - } - - /** - * High-performance override of Runner.immediately. - */ - - Mocha.Runner.immediately = function (callback) { - immediateQueue.push(callback); - if (!immediateTimeout) { - immediateTimeout = setTimeout$1(timeslice, 0); - } - }; - - /** - * Function to allow assertion libraries to throw errors directly into mocha. - * This is useful when running tests in a browser because window.onerror will - * only receive the 'message' attribute of the Error. - */ - mocha.throwError = function (err) { - uncaughtExceptionHandlers.forEach(function (fn) { - fn(err); - }); - throw err; - }; - - /** - * Override ui to ensure that the ui functions are initialized. - * Normally this would happen in Mocha.prototype.loadFiles. - */ - - mocha.ui = function (ui) { - Mocha.prototype.ui.call(this, ui); - this.suite.emit('pre-require', commonjsGlobal, null, this); - return this; - }; - - /** - * Setup mocha with the given setting options. - */ - - mocha.setup = function (opts) { - if (typeof opts === 'string') { - opts = {ui: opts}; - } - if (opts.delay === true) { - this.delay(); - } - var self = this; - Object.keys(opts) - .filter(function (opt) { - return opt !== 'delay'; - }) - .forEach(function (opt) { - if (Object.prototype.hasOwnProperty.call(opts, opt)) { - self[opt](opts[opt]); - } - }); - return this; - }; - - /** - * Run mocha, returning the Runner. - */ - - mocha.run = function (fn) { - var options = mocha.options; - mocha.globals('location'); - - var query = parseQuery(commonjsGlobal.location.search || ''); - if (query.grep) { - mocha.grep(query.grep); - } - if (query.fgrep) { - mocha.fgrep(query.fgrep); - } - if (query.invert) { - mocha.invert(); - } - - return Mocha.prototype.run.call(mocha, function (err) { - // The DOM Document is not available in Web Workers. - var document = commonjsGlobal.document; - if ( - document && - document.getElementById('mocha') && - options.noHighlighting !== true - ) { - highlightTags('code'); - } - if (fn) { - fn(err); - } - }); - }; - - /** - * Expose the process shim. - * https://github.com/mochajs/mocha/pull/916 - */ - - Mocha.process = process; - - /** - * Expose mocha. - */ - commonjsGlobal.Mocha = Mocha; - commonjsGlobal.mocha = mocha; - - // for bundlers: enable `import {describe, it} from 'mocha'` - // `bdd` interface only - // prettier-ignore - [ - 'describe', 'context', 'it', 'specify', - 'xdescribe', 'xcontext', 'xit', 'xspecify', - 'before', 'beforeEach', 'afterEach', 'after' - ].forEach(function(key) { - mocha[key] = commonjsGlobal[key]; - }); - - var browserEntry = mocha; - - return browserEntry; - -})); -//# sourceMappingURL=mocha.js.map - - -/***/ }), -/* 9 */ -/***/ ((module) => { - -function webpackEmptyContext(req) { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; -} -webpackEmptyContext.keys = () => ([]); -webpackEmptyContext.resolve = webpackEmptyContext; -webpackEmptyContext.id = 9; -module.exports = webpackEmptyContext; - -/***/ }), -/* 10 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var map = { - "./extension.test": 11 -}; - - -function webpackContext(req) { - var id = webpackContextResolve(req); - return __webpack_require__(id); -} -function webpackContextResolve(req) { - if(!__webpack_require__.o(map, req)) { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - } - return map[req]; -} -webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); -}; -webpackContext.resolve = webpackContextResolve; -module.exports = webpackContext; -webpackContext.id = 10; - -/***/ }), -/* 11 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const assert = __webpack_require__(12); -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -const vscode = __webpack_require__(1); -// import * as myExtension from '../../extension'; -suite('Web Extension Test Suite', () => { - vscode.window.showInformationMessage('Start all tests.'); - test('Sample test', () => { - assert.strictEqual(-1, [1, 2, 3].indexOf(5)); - assert.strictEqual(-1, [1, 2, 3].indexOf(0)); - }); -}); - - -/***/ }), -/* 12 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var process = __webpack_require__(15); -// Currently in sync with Node.js lib/assert.js -// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b -// Originally from narwhal.js (http://narwhaljs.org) -// Copyright (c) 2009 Thomas Robinson <280north.com> -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the 'Software'), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var _require = __webpack_require__(13), - _require$codes = _require.codes, - ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE, - ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS; - -var AssertionError = __webpack_require__(36); - -var _require2 = __webpack_require__(14), - inspect = _require2.inspect; - -var _require$types = (__webpack_require__(14).types), - isPromise = _require$types.isPromise, - isRegExp = _require$types.isRegExp; - -var objectAssign = Object.assign ? Object.assign : (__webpack_require__(37).assign); -var objectIs = Object.is ? Object.is : __webpack_require__(38); -var errorCache = new Map(); -var isDeepEqual; -var isDeepStrictEqual; -var parseExpressionAt; -var findNodeAround; -var decoder; - -function lazyLoadComparison() { - var comparison = __webpack_require__(47); - - isDeepEqual = comparison.isDeepEqual; - isDeepStrictEqual = comparison.isDeepStrictEqual; -} // Escape control characters but not \n and \t to keep the line breaks and -// indentation intact. -// eslint-disable-next-line no-control-regex - - -var escapeSequencesRegExp = /[\x00-\x08\x0b\x0c\x0e-\x1f]/g; -var meta = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", '\\b', '', '', "\\u000b", '\\f', '', "\\u000e", "\\u000f", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001a", "\\u001b", "\\u001c", "\\u001d", "\\u001e", "\\u001f"]; - -var escapeFn = function escapeFn(str) { - return meta[str.charCodeAt(0)]; -}; - -var warned = false; // The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = module.exports = ok; -var NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function innerFail(obj) { - if (obj.message instanceof Error) throw obj.message; - throw new AssertionError(obj); -} - -function fail(actual, expected, message, operator, stackStartFn) { - var argsLen = arguments.length; - var internalMessage; - - if (argsLen === 0) { - internalMessage = 'Failed'; - } else if (argsLen === 1) { - message = actual; - actual = undefined; - } else { - if (warned === false) { - warned = true; - var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console); - warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094'); - } - - if (argsLen === 2) operator = '!='; - } - - if (message instanceof Error) throw message; - var errArgs = { - actual: actual, - expected: expected, - operator: operator === undefined ? 'fail' : operator, - stackStartFn: stackStartFn || fail - }; - - if (message !== undefined) { - errArgs.message = message; - } - - var err = new AssertionError(errArgs); - - if (internalMessage) { - err.message = internalMessage; - err.generatedMessage = true; - } - - throw err; -} - -assert.fail = fail; // The AssertionError is defined in internal/error. - -assert.AssertionError = AssertionError; - -function innerOk(fn, argLen, value, message) { - if (!value) { - var generatedMessage = false; - - if (argLen === 0) { - generatedMessage = true; - message = 'No value argument passed to `assert.ok()`'; - } else if (message instanceof Error) { - throw message; - } - - var err = new AssertionError({ - actual: value, - expected: true, - message: message, - operator: '==', - stackStartFn: fn - }); - err.generatedMessage = generatedMessage; - throw err; - } -} // Pure assertion tests whether a value is truthy, as determined -// by !!value. - - -function ok() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - innerOk.apply(void 0, [ok, args.length].concat(args)); -} - -assert.ok = ok; // The equality assertion tests shallow, coercive equality with ==. - -/* eslint-disable no-restricted-properties */ - -assert.equal = function equal(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } // eslint-disable-next-line eqeqeq - - - if (actual != expected) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: '==', - stackStartFn: equal - }); - } -}; // The non-equality assertion tests for whether two objects are not -// equal with !=. - - -assert.notEqual = function notEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } // eslint-disable-next-line eqeqeq - - - if (actual == expected) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: '!=', - stackStartFn: notEqual - }); - } -}; // The equivalence assertion tests a deep equality relation. - - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } - - if (isDeepEqual === undefined) lazyLoadComparison(); - - if (!isDeepEqual(actual, expected)) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: 'deepEqual', - stackStartFn: deepEqual - }); - } -}; // The non-equivalence assertion tests for any deep inequality. - - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } - - if (isDeepEqual === undefined) lazyLoadComparison(); - - if (isDeepEqual(actual, expected)) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: 'notDeepEqual', - stackStartFn: notDeepEqual - }); - } -}; -/* eslint-enable */ - - -assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } - - if (isDeepEqual === undefined) lazyLoadComparison(); - - if (!isDeepStrictEqual(actual, expected)) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: 'deepStrictEqual', - stackStartFn: deepStrictEqual - }); - } -}; - -assert.notDeepStrictEqual = notDeepStrictEqual; - -function notDeepStrictEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } - - if (isDeepEqual === undefined) lazyLoadComparison(); - - if (isDeepStrictEqual(actual, expected)) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: 'notDeepStrictEqual', - stackStartFn: notDeepStrictEqual - }); - } -} - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } - - if (!objectIs(actual, expected)) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: 'strictEqual', - stackStartFn: strictEqual - }); - } -}; - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (arguments.length < 2) { - throw new ERR_MISSING_ARGS('actual', 'expected'); - } - - if (objectIs(actual, expected)) { - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: 'notStrictEqual', - stackStartFn: notStrictEqual - }); - } -}; - -var Comparison = function Comparison(obj, keys, actual) { - var _this = this; - - _classCallCheck(this, Comparison); - - keys.forEach(function (key) { - if (key in obj) { - if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) { - _this[key] = actual[key]; - } else { - _this[key] = obj[key]; - } - } - }); -}; - -function compareExceptionKey(actual, expected, key, message, keys, fn) { - if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) { - if (!message) { - // Create placeholder objects to create a nice output. - var a = new Comparison(actual, keys); - var b = new Comparison(expected, keys, actual); - var err = new AssertionError({ - actual: a, - expected: b, - operator: 'deepStrictEqual', - stackStartFn: fn - }); - err.actual = actual; - err.expected = expected; - err.operator = fn.name; - throw err; - } - - innerFail({ - actual: actual, - expected: expected, - message: message, - operator: fn.name, - stackStartFn: fn - }); - } -} - -function expectedException(actual, expected, msg, fn) { - if (typeof expected !== 'function') { - if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects. - - if (arguments.length === 2) { - throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected); - } // Handle primitives properly. - - - if (_typeof(actual) !== 'object' || actual === null) { - var err = new AssertionError({ - actual: actual, - expected: expected, - message: msg, - operator: 'deepStrictEqual', - stackStartFn: fn - }); - err.operator = fn.name; - throw err; - } - - var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared - // as well. - - if (expected instanceof Error) { - keys.push('name', 'message'); - } else if (keys.length === 0) { - throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object'); - } - - if (isDeepEqual === undefined) lazyLoadComparison(); - keys.forEach(function (key) { - if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) { - return; - } - - compareExceptionKey(actual, expected, key, msg, keys, fn); - }); - return true; - } // Guard instanceof against arrow functions as they don't have a prototype. - - - if (expected.prototype !== undefined && actual instanceof expected) { - return true; - } - - if (Error.isPrototypeOf(expected)) { - return false; - } - - return expected.call({}, actual) === true; -} - -function getActual(fn) { - if (typeof fn !== 'function') { - throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn); - } - - try { - fn(); - } catch (e) { - return e; - } - - return NO_EXCEPTION_SENTINEL; -} - -function checkIsPromise(obj) { - // Accept native ES6 promises and promises that are implemented in a similar - // way. Do not accept thenables that use a function as `obj` and that have no - // `catch` handler. - // TODO: thenables are checked up until they have the correct methods, - // but according to documentation, the `then` method should receive - // the `fulfill` and `reject` arguments as well or it may be never resolved. - return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function'; -} - -function waitForActual(promiseFn) { - return Promise.resolve().then(function () { - var resultPromise; - - if (typeof promiseFn === 'function') { - // Return a rejected promise if `promiseFn` throws synchronously. - resultPromise = promiseFn(); // Fail in case no promise is returned. - - if (!checkIsPromise(resultPromise)) { - throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise); - } - } else if (checkIsPromise(promiseFn)) { - resultPromise = promiseFn; - } else { - throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn); - } - - return Promise.resolve().then(function () { - return resultPromise; - }).then(function () { - return NO_EXCEPTION_SENTINEL; - }).catch(function (e) { - return e; - }); - }); -} - -function expectsError(stackStartFn, actual, error, message) { - if (typeof error === 'string') { - if (arguments.length === 4) { - throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error); - } - - if (_typeof(actual) === 'object' && actual !== null) { - if (actual.message === error) { - throw new ERR_AMBIGUOUS_ARGUMENT('error/message', "The error message \"".concat(actual.message, "\" is identical to the message.")); - } - } else if (actual === error) { - throw new ERR_AMBIGUOUS_ARGUMENT('error/message', "The error \"".concat(actual, "\" is identical to the message.")); - } - - message = error; - error = undefined; - } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') { - throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error); - } - - if (actual === NO_EXCEPTION_SENTINEL) { - var details = ''; - - if (error && error.name) { - details += " (".concat(error.name, ")"); - } - - details += message ? ": ".concat(message) : '.'; - var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception'; - innerFail({ - actual: undefined, - expected: error, - operator: stackStartFn.name, - message: "Missing expected ".concat(fnType).concat(details), - stackStartFn: stackStartFn - }); - } - - if (error && !expectedException(actual, error, message, stackStartFn)) { - throw actual; - } -} - -function expectsNoError(stackStartFn, actual, error, message) { - if (actual === NO_EXCEPTION_SENTINEL) return; - - if (typeof error === 'string') { - message = error; - error = undefined; - } - - if (!error || expectedException(actual, error)) { - var details = message ? ": ".concat(message) : '.'; - var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception'; - innerFail({ - actual: actual, - expected: error, - operator: stackStartFn.name, - message: "Got unwanted ".concat(fnType).concat(details, "\n") + "Actual message: \"".concat(actual && actual.message, "\""), - stackStartFn: stackStartFn - }); - } - - throw actual; -} - -assert.throws = function throws(promiseFn) { - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - - expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args)); -}; - -assert.rejects = function rejects(promiseFn) { - for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { - args[_key3 - 1] = arguments[_key3]; - } - - return waitForActual(promiseFn).then(function (result) { - return expectsError.apply(void 0, [rejects, result].concat(args)); - }); -}; - -assert.doesNotThrow = function doesNotThrow(fn) { - for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { - args[_key4 - 1] = arguments[_key4]; - } - - expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args)); -}; - -assert.doesNotReject = function doesNotReject(fn) { - for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) { - args[_key5 - 1] = arguments[_key5]; - } - - return waitForActual(fn).then(function (result) { - return expectsNoError.apply(void 0, [doesNotReject, result].concat(args)); - }); -}; - -assert.ifError = function ifError(err) { - if (err !== null && err !== undefined) { - var message = 'ifError got unwanted exception: '; - - if (_typeof(err) === 'object' && typeof err.message === 'string') { - if (err.message.length === 0 && err.constructor) { - message += err.constructor.name; - } else { - message += err.message; - } - } else { - message += inspect(err); - } - - var newErr = new AssertionError({ - actual: err, - expected: null, - operator: 'ifError', - message: message, - stackStartFn: ifError - }); // Make sure we actually have a stack trace! - - var origStack = err.stack; - - if (typeof origStack === 'string') { - // This will remove any duplicated frames from the error frames taken - // from within `ifError` and add the original error frames to the newly - // created ones. - var tmp2 = origStack.split('\n'); - tmp2.shift(); // Filter all frames existing in err.stack. - - var tmp1 = newErr.stack.split('\n'); - - for (var i = 0; i < tmp2.length; i++) { - // Find the first occurrence of the frame. - var pos = tmp1.indexOf(tmp2[i]); - - if (pos !== -1) { - // Only keep new frames. - tmp1 = tmp1.slice(0, pos); - break; - } - } - - newErr.stack = "".concat(tmp1.join('\n'), "\n").concat(tmp2.join('\n')); - } - - throw newErr; - } -}; // Expose a strict only variant of assert - - -function strict() { - for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - innerOk.apply(void 0, [strict, args.length].concat(args)); -} - -assert.strict = objectAssign(strict, assert, { - equal: assert.strictEqual, - deepEqual: assert.deepStrictEqual, - notEqual: assert.notStrictEqual, - notDeepEqual: assert.notDeepStrictEqual -}); -assert.strict.strict = assert.strict; - -/***/ }), -/* 13 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Currently in sync with Node.js lib/internal/errors.js -// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f - -/* eslint node-core/documented-errors: "error" */ - -/* eslint node-core/alphabetize-errors: "error" */ - -/* eslint node-core/prefer-util-format-errors: "error" */ - // The whole point behind this internal module is to allow Node.js to no -// longer be forced to treat every error message change as a semver-major -// change. The NodeError classes here all expose a `code` property whose -// value statically and permanently identifies the error. While the error -// message may change, the code should not. - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var codes = {}; // Lazy loaded - -var assert; -var util; - -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error; - } - - function getMessage(arg1, arg2, arg3) { - if (typeof message === 'string') { - return message; - } else { - return message(arg1, arg2, arg3); - } - } - - var NodeError = - /*#__PURE__*/ - function (_Base) { - _inherits(NodeError, _Base); - - function NodeError(arg1, arg2, arg3) { - var _this; - - _classCallCheck(this, NodeError); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3))); - _this.code = code; - return _this; - } - - return NodeError; - }(Base); - - codes[code] = NodeError; -} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js - - -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - var len = expected.length; - expected = expected.map(function (i) { - return String(i); - }); - - if (len > 2) { - return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1]; - } else if (len === 2) { - return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]); - } else { - return "of ".concat(thing, " ").concat(expected[0]); - } - } else { - return "of ".concat(thing, " ").concat(String(expected)); - } -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith - - -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith - - -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - - return str.substring(this_len - search.length, this_len) === search; -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes - - -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; - } - - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; - } -} - -createErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The "%s" argument is ambiguous. %s', TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - if (assert === undefined) assert = __webpack_require__(12); - assert(typeof name === 'string', "'name' must be a string"); // determiner: 'must be' or 'must not be' - - var determiner; - - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); - } else { - determiner = 'must be'; - } - - var msg; - - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); - } else { - var type = includes(name, '.') ? 'property' : 'argument'; - msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); - } // TODO(BridgeAR): Improve the output by showing `null` and similar. - - - msg += ". Received type ".concat(_typeof(actual)); - return msg; -}, TypeError); -createErrorType('ERR_INVALID_ARG_VALUE', function (name, value) { - var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid'; - if (util === undefined) util = __webpack_require__(14); - var inspected = util.inspect(value); - - if (inspected.length > 128) { - inspected = "".concat(inspected.slice(0, 128), "..."); - } - - return "The argument '".concat(name, "' ").concat(reason, ". Received ").concat(inspected); -}, TypeError, RangeError); -createErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) { - var type; - - if (value && value.constructor && value.constructor.name) { - type = "instance of ".concat(value.constructor.name); - } else { - type = "type ".concat(_typeof(value)); - } - - return "Expected ".concat(input, " to be returned from the \"").concat(name, "\"") + " function but got ".concat(type, "."); -}, TypeError); -createErrorType('ERR_MISSING_ARGS', function () { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - if (assert === undefined) assert = __webpack_require__(12); - assert(args.length > 0, 'At least one arg needs to be specified'); - var msg = 'The '; - var len = args.length; - args = args.map(function (a) { - return "\"".concat(a, "\""); - }); - - switch (len) { - case 1: - msg += "".concat(args[0], " argument"); - break; - - case 2: - msg += "".concat(args[0], " and ").concat(args[1], " arguments"); - break; - - default: - msg += args.slice(0, len - 1).join(', '); - msg += ", and ".concat(args[len - 1], " arguments"); - break; - } - - return "".concat(msg, " must be specified"); -}, TypeError); -module.exports.codes = codes; - -/***/ }), -/* 14 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -/* provided dependency */ var process = __webpack_require__(15); -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || - function getOwnPropertyDescriptors(obj) { - var keys = Object.keys(obj); - var descriptors = {}; - for (var i = 0; i < keys.length; i++) { - descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]); - } - return descriptors; - }; - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - if (typeof process !== 'undefined' && process.noDeprecation === true) { - return fn; - } - - // Allow for deprecating things in the process of starting up. - if (typeof process === 'undefined') { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnvRegex = /^$/; - -if (process.env.NODE_DEBUG) { - var debugEnv = process.env.NODE_DEBUG; - debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, '\\$&') - .replace(/\*/g, '.*') - .replace(/,/g, '$|^') - .toUpperCase(); - debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i'); -} -exports.debuglog = function(set) { - set = set.toUpperCase(); - if (!debugs[set]) { - if (debugEnvRegex.test(set)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').slice(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.slice(1, -1); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -exports.types = __webpack_require__(16); - -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; -exports.types.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; -exports.types.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; -exports.types.isNativeError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = __webpack_require__(34); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = __webpack_require__(35); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -var kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined; - -exports.promisify = function promisify(original) { - if (typeof original !== 'function') - throw new TypeError('The "original" argument must be of type Function'); - - if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) { - var fn = original[kCustomPromisifiedSymbol]; - if (typeof fn !== 'function') { - throw new TypeError('The "util.promisify.custom" argument must be of type Function'); - } - Object.defineProperty(fn, kCustomPromisifiedSymbol, { - value: fn, enumerable: false, writable: false, configurable: true - }); - return fn; - } - - function fn() { - var promiseResolve, promiseReject; - var promise = new Promise(function (resolve, reject) { - promiseResolve = resolve; - promiseReject = reject; - }); - - var args = []; - for (var i = 0; i < arguments.length; i++) { - args.push(arguments[i]); - } - args.push(function (err, value) { - if (err) { - promiseReject(err); - } else { - promiseResolve(value); - } - }); - - try { - original.apply(this, args); - } catch (err) { - promiseReject(err); - } - - return promise; - } - - Object.setPrototypeOf(fn, Object.getPrototypeOf(original)); - - if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, { - value: fn, enumerable: false, writable: false, configurable: true - }); - return Object.defineProperties( - fn, - getOwnPropertyDescriptors(original) - ); -} - -exports.promisify.custom = kCustomPromisifiedSymbol - -function callbackifyOnRejected(reason, cb) { - // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M). - // Because `null` is a special error value in callbacks which means "no error - // occurred", we error-wrap so the callback consumer can distinguish between - // "the promise rejected with null" or "the promise fulfilled with undefined". - if (!reason) { - var newReason = new Error('Promise was rejected with a falsy value'); - newReason.reason = reason; - reason = newReason; - } - return cb(reason); -} - -function callbackify(original) { - if (typeof original !== 'function') { - throw new TypeError('The "original" argument must be of type Function'); - } - - // We DO NOT return the promise as it gives the user a false sense that - // the promise is actually somehow related to the callback's execution - // and that the callback throwing will reject the promise. - function callbackified() { - var args = []; - for (var i = 0; i < arguments.length; i++) { - args.push(arguments[i]); - } - - var maybeCb = args.pop(); - if (typeof maybeCb !== 'function') { - throw new TypeError('The last argument must be of type Function'); - } - var self = this; - var cb = function() { - return maybeCb.apply(self, arguments); - }; - // In true node style we process the callback on `nextTick` with all the - // implications (stack, `uncaughtException`, `async_hooks`) - original.apply(this, args) - .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) }, - function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) }); - } - - Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original)); - Object.defineProperties(callbackified, - getOwnPropertyDescriptors(original)); - return callbackified; -} -exports.callbackify = callbackify; - - -/***/ }), -/* 15 */ -/***/ ((module) => { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 16 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; -// Currently in sync with Node.js lib/internal/util/types.js -// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9 - - - -var isArgumentsObject = __webpack_require__(17); -var isGeneratorFunction = __webpack_require__(27); -var whichTypedArray = __webpack_require__(28); -var isTypedArray = __webpack_require__(33); - -function uncurryThis(f) { - return f.call.bind(f); -} - -var BigIntSupported = typeof BigInt !== 'undefined'; -var SymbolSupported = typeof Symbol !== 'undefined'; - -var ObjectToString = uncurryThis(Object.prototype.toString); - -var numberValue = uncurryThis(Number.prototype.valueOf); -var stringValue = uncurryThis(String.prototype.valueOf); -var booleanValue = uncurryThis(Boolean.prototype.valueOf); - -if (BigIntSupported) { - var bigIntValue = uncurryThis(BigInt.prototype.valueOf); -} - -if (SymbolSupported) { - var symbolValue = uncurryThis(Symbol.prototype.valueOf); -} - -function checkBoxedPrimitive(value, prototypeValueOf) { - if (typeof value !== 'object') { - return false; - } - try { - prototypeValueOf(value); - return true; - } catch(e) { - return false; - } -} - -exports.isArgumentsObject = isArgumentsObject; -exports.isGeneratorFunction = isGeneratorFunction; -exports.isTypedArray = isTypedArray; - -// Taken from here and modified for better browser support -// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js -function isPromise(input) { - return ( - ( - typeof Promise !== 'undefined' && - input instanceof Promise - ) || - ( - input !== null && - typeof input === 'object' && - typeof input.then === 'function' && - typeof input.catch === 'function' - ) - ); -} -exports.isPromise = isPromise; - -function isArrayBufferView(value) { - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - return ArrayBuffer.isView(value); - } - - return ( - isTypedArray(value) || - isDataView(value) - ); -} -exports.isArrayBufferView = isArrayBufferView; - - -function isUint8Array(value) { - return whichTypedArray(value) === 'Uint8Array'; -} -exports.isUint8Array = isUint8Array; - -function isUint8ClampedArray(value) { - return whichTypedArray(value) === 'Uint8ClampedArray'; -} -exports.isUint8ClampedArray = isUint8ClampedArray; - -function isUint16Array(value) { - return whichTypedArray(value) === 'Uint16Array'; -} -exports.isUint16Array = isUint16Array; - -function isUint32Array(value) { - return whichTypedArray(value) === 'Uint32Array'; -} -exports.isUint32Array = isUint32Array; - -function isInt8Array(value) { - return whichTypedArray(value) === 'Int8Array'; -} -exports.isInt8Array = isInt8Array; - -function isInt16Array(value) { - return whichTypedArray(value) === 'Int16Array'; -} -exports.isInt16Array = isInt16Array; - -function isInt32Array(value) { - return whichTypedArray(value) === 'Int32Array'; -} -exports.isInt32Array = isInt32Array; - -function isFloat32Array(value) { - return whichTypedArray(value) === 'Float32Array'; -} -exports.isFloat32Array = isFloat32Array; - -function isFloat64Array(value) { - return whichTypedArray(value) === 'Float64Array'; -} -exports.isFloat64Array = isFloat64Array; - -function isBigInt64Array(value) { - return whichTypedArray(value) === 'BigInt64Array'; -} -exports.isBigInt64Array = isBigInt64Array; - -function isBigUint64Array(value) { - return whichTypedArray(value) === 'BigUint64Array'; -} -exports.isBigUint64Array = isBigUint64Array; - -function isMapToString(value) { - return ObjectToString(value) === '[object Map]'; -} -isMapToString.working = ( - typeof Map !== 'undefined' && - isMapToString(new Map()) -); - -function isMap(value) { - if (typeof Map === 'undefined') { - return false; - } - - return isMapToString.working - ? isMapToString(value) - : value instanceof Map; -} -exports.isMap = isMap; - -function isSetToString(value) { - return ObjectToString(value) === '[object Set]'; -} -isSetToString.working = ( - typeof Set !== 'undefined' && - isSetToString(new Set()) -); -function isSet(value) { - if (typeof Set === 'undefined') { - return false; - } - - return isSetToString.working - ? isSetToString(value) - : value instanceof Set; -} -exports.isSet = isSet; - -function isWeakMapToString(value) { - return ObjectToString(value) === '[object WeakMap]'; -} -isWeakMapToString.working = ( - typeof WeakMap !== 'undefined' && - isWeakMapToString(new WeakMap()) -); -function isWeakMap(value) { - if (typeof WeakMap === 'undefined') { - return false; - } - - return isWeakMapToString.working - ? isWeakMapToString(value) - : value instanceof WeakMap; -} -exports.isWeakMap = isWeakMap; - -function isWeakSetToString(value) { - return ObjectToString(value) === '[object WeakSet]'; -} -isWeakSetToString.working = ( - typeof WeakSet !== 'undefined' && - isWeakSetToString(new WeakSet()) -); -function isWeakSet(value) { - return isWeakSetToString(value); -} -exports.isWeakSet = isWeakSet; - -function isArrayBufferToString(value) { - return ObjectToString(value) === '[object ArrayBuffer]'; -} -isArrayBufferToString.working = ( - typeof ArrayBuffer !== 'undefined' && - isArrayBufferToString(new ArrayBuffer()) -); -function isArrayBuffer(value) { - if (typeof ArrayBuffer === 'undefined') { - return false; - } - - return isArrayBufferToString.working - ? isArrayBufferToString(value) - : value instanceof ArrayBuffer; -} -exports.isArrayBuffer = isArrayBuffer; - -function isDataViewToString(value) { - return ObjectToString(value) === '[object DataView]'; -} -isDataViewToString.working = ( - typeof ArrayBuffer !== 'undefined' && - typeof DataView !== 'undefined' && - isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1)) -); -function isDataView(value) { - if (typeof DataView === 'undefined') { - return false; - } - - return isDataViewToString.working - ? isDataViewToString(value) - : value instanceof DataView; -} -exports.isDataView = isDataView; - -// Store a copy of SharedArrayBuffer in case it's deleted elsewhere -var SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined; -function isSharedArrayBufferToString(value) { - return ObjectToString(value) === '[object SharedArrayBuffer]'; -} -function isSharedArrayBuffer(value) { - if (typeof SharedArrayBufferCopy === 'undefined') { - return false; - } - - if (typeof isSharedArrayBufferToString.working === 'undefined') { - isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy()); - } - - return isSharedArrayBufferToString.working - ? isSharedArrayBufferToString(value) - : value instanceof SharedArrayBufferCopy; -} -exports.isSharedArrayBuffer = isSharedArrayBuffer; - -function isAsyncFunction(value) { - return ObjectToString(value) === '[object AsyncFunction]'; -} -exports.isAsyncFunction = isAsyncFunction; - -function isMapIterator(value) { - return ObjectToString(value) === '[object Map Iterator]'; -} -exports.isMapIterator = isMapIterator; - -function isSetIterator(value) { - return ObjectToString(value) === '[object Set Iterator]'; -} -exports.isSetIterator = isSetIterator; - -function isGeneratorObject(value) { - return ObjectToString(value) === '[object Generator]'; -} -exports.isGeneratorObject = isGeneratorObject; - -function isWebAssemblyCompiledModule(value) { - return ObjectToString(value) === '[object WebAssembly.Module]'; -} -exports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule; - -function isNumberObject(value) { - return checkBoxedPrimitive(value, numberValue); -} -exports.isNumberObject = isNumberObject; - -function isStringObject(value) { - return checkBoxedPrimitive(value, stringValue); -} -exports.isStringObject = isStringObject; - -function isBooleanObject(value) { - return checkBoxedPrimitive(value, booleanValue); -} -exports.isBooleanObject = isBooleanObject; - -function isBigIntObject(value) { - return BigIntSupported && checkBoxedPrimitive(value, bigIntValue); -} -exports.isBigIntObject = isBigIntObject; - -function isSymbolObject(value) { - return SymbolSupported && checkBoxedPrimitive(value, symbolValue); -} -exports.isSymbolObject = isSymbolObject; - -function isBoxedPrimitive(value) { - return ( - isNumberObject(value) || - isStringObject(value) || - isBooleanObject(value) || - isBigIntObject(value) || - isSymbolObject(value) - ); -} -exports.isBoxedPrimitive = isBoxedPrimitive; - -function isAnyArrayBuffer(value) { - return typeof Uint8Array !== 'undefined' && ( - isArrayBuffer(value) || - isSharedArrayBuffer(value) - ); -} -exports.isAnyArrayBuffer = isAnyArrayBuffer; - -['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) { - Object.defineProperty(exports, method, { - enumerable: false, - value: function() { - throw new Error(method + ' is not supported in userland'); - } - }); -}); - - -/***/ }), -/* 17 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var hasToStringTag = __webpack_require__(18)(); -var callBound = __webpack_require__(20); - -var $toString = callBound('Object.prototype.toString'); - -var isStandardArguments = function isArguments(value) { - if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) { - return false; - } - return $toString(value) === '[object Arguments]'; -}; - -var isLegacyArguments = function isArguments(value) { - if (isStandardArguments(value)) { - return true; - } - return value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - $toString(value) !== '[object Array]' && - $toString(value.callee) === '[object Function]'; -}; - -var supportsStandardArguments = (function () { - return isStandardArguments(arguments); -}()); - -isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests - -module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments; - - -/***/ }), -/* 18 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var hasSymbols = __webpack_require__(19); - -module.exports = function hasToStringTagShams() { - return hasSymbols() && !!Symbol.toStringTag; -}; - - -/***/ }), -/* 19 */ -/***/ ((module) => { - -"use strict"; - - -/* eslint complexity: [2, 18], max-statements: [2, 33] */ -module.exports = function hasSymbols() { - if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } - if (typeof Symbol.iterator === 'symbol') { return true; } - - var obj = {}; - var sym = Symbol('test'); - var symObj = Object(sym); - if (typeof sym === 'string') { return false; } - - if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } - if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } - - // temp disabled per https://github.com/ljharb/object.assign/issues/17 - // if (sym instanceof Symbol) { return false; } - // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 - // if (!(symObj instanceof Symbol)) { return false; } - - // if (typeof Symbol.prototype.toString !== 'function') { return false; } - // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } - - var symVal = 42; - obj[sym] = symVal; - for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop - if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } - - if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } - - var syms = Object.getOwnPropertySymbols(obj); - if (syms.length !== 1 || syms[0] !== sym) { return false; } - - if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } - - if (typeof Object.getOwnPropertyDescriptor === 'function') { - var descriptor = Object.getOwnPropertyDescriptor(obj, sym); - if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } - } - - return true; -}; - - -/***/ }), -/* 20 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var GetIntrinsic = __webpack_require__(21); - -var callBind = __webpack_require__(26); - -var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - -module.exports = function callBoundIntrinsic(name, allowMissing) { - var intrinsic = GetIntrinsic(name, !!allowMissing); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { - return callBind(intrinsic); - } - return intrinsic; -}; - - -/***/ }), -/* 21 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var undefined; - -var $SyntaxError = SyntaxError; -var $Function = Function; -var $TypeError = TypeError; - -// eslint-disable-next-line consistent-return -var getEvalledConstructor = function (expressionSyntax) { - try { - return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); - } catch (e) {} -}; - -var $gOPD = Object.getOwnPropertyDescriptor; -if ($gOPD) { - try { - $gOPD({}, ''); - } catch (e) { - $gOPD = null; // this is IE 8, which has a broken gOPD - } -} - -var throwTypeError = function () { - throw new $TypeError(); -}; -var ThrowTypeError = $gOPD - ? (function () { - try { - // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties - arguments.callee; // IE 8 does not throw here - return throwTypeError; - } catch (calleeThrows) { - try { - // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') - return $gOPD(arguments, 'callee').get; - } catch (gOPDthrows) { - return throwTypeError; - } - } - }()) - : throwTypeError; - -var hasSymbols = __webpack_require__(22)(); - -var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto - -var needsEval = {}; - -var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, - '%Array%': Array, - '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, - '%AsyncFromSyncIteratorPrototype%': undefined, - '%AsyncFunction%': needsEval, - '%AsyncGenerator%': needsEval, - '%AsyncGeneratorFunction%': needsEval, - '%AsyncIteratorPrototype%': needsEval, - '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, - '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, - '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, - '%Boolean%': Boolean, - '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '%Date%': Date, - '%decodeURI%': decodeURI, - '%decodeURIComponent%': decodeURIComponent, - '%encodeURI%': encodeURI, - '%encodeURIComponent%': encodeURIComponent, - '%Error%': Error, - '%eval%': eval, // eslint-disable-line no-eval - '%EvalError%': EvalError, - '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, - '%Function%': $Function, - '%GeneratorFunction%': needsEval, - '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '%isFinite%': isFinite, - '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, - '%JSON%': typeof JSON === 'object' ? JSON : undefined, - '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), - '%Math%': Math, - '%Number%': Number, - '%Object%': Object, - '%parseFloat%': parseFloat, - '%parseInt%': parseInt, - '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '%RangeError%': RangeError, - '%ReferenceError%': ReferenceError, - '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '%RegExp%': RegExp, - '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), - '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '%String%': String, - '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, - '%Symbol%': hasSymbols ? Symbol : undefined, - '%SyntaxError%': $SyntaxError, - '%ThrowTypeError%': ThrowTypeError, - '%TypedArray%': TypedArray, - '%TypeError%': $TypeError, - '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '%URIError%': URIError, - '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, - '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet -}; - -try { - null.error; // eslint-disable-line no-unused-expressions -} catch (e) { - // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 - var errorProto = getProto(getProto(e)); - INTRINSICS['%Error.prototype%'] = errorProto; -} - -var doEval = function doEval(name) { - var value; - if (name === '%AsyncFunction%') { - value = getEvalledConstructor('async function () {}'); - } else if (name === '%GeneratorFunction%') { - value = getEvalledConstructor('function* () {}'); - } else if (name === '%AsyncGeneratorFunction%') { - value = getEvalledConstructor('async function* () {}'); - } else if (name === '%AsyncGenerator%') { - var fn = doEval('%AsyncGeneratorFunction%'); - if (fn) { - value = fn.prototype; - } - } else if (name === '%AsyncIteratorPrototype%') { - var gen = doEval('%AsyncGenerator%'); - if (gen) { - value = getProto(gen.prototype); - } - } - - INTRINSICS[name] = value; - - return value; -}; - -var LEGACY_ALIASES = { - '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], - '%ArrayPrototype%': ['Array', 'prototype'], - '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], - '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], - '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], - '%ArrayProto_values%': ['Array', 'prototype', 'values'], - '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], - '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], - '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], - '%BooleanPrototype%': ['Boolean', 'prototype'], - '%DataViewPrototype%': ['DataView', 'prototype'], - '%DatePrototype%': ['Date', 'prototype'], - '%ErrorPrototype%': ['Error', 'prototype'], - '%EvalErrorPrototype%': ['EvalError', 'prototype'], - '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], - '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], - '%FunctionPrototype%': ['Function', 'prototype'], - '%Generator%': ['GeneratorFunction', 'prototype'], - '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], - '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], - '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], - '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], - '%JSONParse%': ['JSON', 'parse'], - '%JSONStringify%': ['JSON', 'stringify'], - '%MapPrototype%': ['Map', 'prototype'], - '%NumberPrototype%': ['Number', 'prototype'], - '%ObjectPrototype%': ['Object', 'prototype'], - '%ObjProto_toString%': ['Object', 'prototype', 'toString'], - '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], - '%PromisePrototype%': ['Promise', 'prototype'], - '%PromiseProto_then%': ['Promise', 'prototype', 'then'], - '%Promise_all%': ['Promise', 'all'], - '%Promise_reject%': ['Promise', 'reject'], - '%Promise_resolve%': ['Promise', 'resolve'], - '%RangeErrorPrototype%': ['RangeError', 'prototype'], - '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], - '%RegExpPrototype%': ['RegExp', 'prototype'], - '%SetPrototype%': ['Set', 'prototype'], - '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], - '%StringPrototype%': ['String', 'prototype'], - '%SymbolPrototype%': ['Symbol', 'prototype'], - '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], - '%TypedArrayPrototype%': ['TypedArray', 'prototype'], - '%TypeErrorPrototype%': ['TypeError', 'prototype'], - '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], - '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], - '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], - '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], - '%URIErrorPrototype%': ['URIError', 'prototype'], - '%WeakMapPrototype%': ['WeakMap', 'prototype'], - '%WeakSetPrototype%': ['WeakSet', 'prototype'] -}; - -var bind = __webpack_require__(23); -var hasOwn = __webpack_require__(25); -var $concat = bind.call(Function.call, Array.prototype.concat); -var $spliceApply = bind.call(Function.apply, Array.prototype.splice); -var $replace = bind.call(Function.call, String.prototype.replace); -var $strSlice = bind.call(Function.call, String.prototype.slice); -var $exec = bind.call(Function.call, RegExp.prototype.exec); - -/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ -var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; -var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ -var stringToPath = function stringToPath(string) { - var first = $strSlice(string, 0, 1); - var last = $strSlice(string, -1); - if (first === '%' && last !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); - } else if (last === '%' && first !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); - } - var result = []; - $replace(string, rePropName, function (match, number, quote, subString) { - result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; - }); - return result; -}; -/* end adaptation */ - -var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { - var intrinsicName = name; - var alias; - if (hasOwn(LEGACY_ALIASES, intrinsicName)) { - alias = LEGACY_ALIASES[intrinsicName]; - intrinsicName = '%' + alias[0] + '%'; - } - - if (hasOwn(INTRINSICS, intrinsicName)) { - var value = INTRINSICS[intrinsicName]; - if (value === needsEval) { - value = doEval(intrinsicName); - } - if (typeof value === 'undefined' && !allowMissing) { - throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } - - return { - alias: alias, - name: intrinsicName, - value: value - }; - } - - throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); -}; - -module.exports = function GetIntrinsic(name, allowMissing) { - if (typeof name !== 'string' || name.length === 0) { - throw new $TypeError('intrinsic name must be a non-empty string'); - } - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new $TypeError('"allowMissing" argument must be a boolean'); - } - - if ($exec(/^%?[^%]*%?$/, name) === null) { - throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); - } - var parts = stringToPath(name); - var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; - - var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); - var intrinsicRealName = intrinsic.name; - var value = intrinsic.value; - var skipFurtherCaching = false; - - var alias = intrinsic.alias; - if (alias) { - intrinsicBaseName = alias[0]; - $spliceApply(parts, $concat([0, 1], alias)); - } - - for (var i = 1, isOwn = true; i < parts.length; i += 1) { - var part = parts[i]; - var first = $strSlice(part, 0, 1); - var last = $strSlice(part, -1); - if ( - ( - (first === '"' || first === "'" || first === '`') - || (last === '"' || last === "'" || last === '`') - ) - && first !== last - ) { - throw new $SyntaxError('property names with quotes must have matching quotes'); - } - if (part === 'constructor' || !isOwn) { - skipFurtherCaching = true; - } - - intrinsicBaseName += '.' + part; - intrinsicRealName = '%' + intrinsicBaseName + '%'; - - if (hasOwn(INTRINSICS, intrinsicRealName)) { - value = INTRINSICS[intrinsicRealName]; - } else if (value != null) { - if (!(part in value)) { - if (!allowMissing) { - throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); - } - return void undefined; - } - if ($gOPD && (i + 1) >= parts.length) { - var desc = $gOPD(value, part); - isOwn = !!desc; - - // By convention, when a data property is converted to an accessor - // property to emulate a data property that does not suffer from - // the override mistake, that accessor's getter is marked with - // an `originalValue` property. Here, when we detect this, we - // uphold the illusion by pretending to see that original data - // property, i.e., returning the value rather than the getter - // itself. - if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { - value = desc.get; - } else { - value = value[part]; - } - } else { - isOwn = hasOwn(value, part); - value = value[part]; - } - - if (isOwn && !skipFurtherCaching) { - INTRINSICS[intrinsicRealName] = value; - } - } - } - return value; -}; - - -/***/ }), -/* 22 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var origSymbol = typeof Symbol !== 'undefined' && Symbol; -var hasSymbolSham = __webpack_require__(19); - -module.exports = function hasNativeSymbols() { - if (typeof origSymbol !== 'function') { return false; } - if (typeof Symbol !== 'function') { return false; } - if (typeof origSymbol('foo') !== 'symbol') { return false; } - if (typeof Symbol('bar') !== 'symbol') { return false; } - - return hasSymbolSham(); -}; - - -/***/ }), -/* 23 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var implementation = __webpack_require__(24); - -module.exports = Function.prototype.bind || implementation; - - -/***/ }), -/* 24 */ -/***/ ((module) => { - -"use strict"; - - -/* eslint no-invalid-this: 1 */ - -var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; -var slice = Array.prototype.slice; -var toStr = Object.prototype.toString; -var funcType = '[object Function]'; - -module.exports = function bind(that) { - var target = this; - if (typeof target !== 'function' || toStr.call(target) !== funcType) { - throw new TypeError(ERROR_MESSAGE + target); - } - var args = slice.call(arguments, 1); - - var bound; - var binder = function () { - if (this instanceof bound) { - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - } - }; - - var boundLength = Math.max(0, target.length - args.length); - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - boundArgs.push('$' + i); - } - - bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); - - if (target.prototype) { - var Empty = function Empty() {}; - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - - return bound; -}; - - -/***/ }), -/* 25 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var bind = __webpack_require__(23); - -module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); - - -/***/ }), -/* 26 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var bind = __webpack_require__(23); -var GetIntrinsic = __webpack_require__(21); - -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); -var $max = GetIntrinsic('%Math.max%'); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -module.exports = function callBind(originalFunction) { - var func = $reflectApply(bind, $call, arguments); - if ($gOPD && $defineProperty) { - var desc = $gOPD(func, 'length'); - if (desc.configurable) { - // original length, plus the receiver, minus any additional arguments (after the receiver) - $defineProperty( - func, - 'length', - { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } - ); - } - } - return func; -}; - -var applyBind = function applyBind() { - return $reflectApply(bind, $apply, arguments); -}; - -if ($defineProperty) { - $defineProperty(module.exports, 'apply', { value: applyBind }); -} else { - module.exports.apply = applyBind; -} - - -/***/ }), -/* 27 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var toStr = Object.prototype.toString; -var fnToStr = Function.prototype.toString; -var isFnRegex = /^\s*(?:function)?\*/; -var hasToStringTag = __webpack_require__(18)(); -var getProto = Object.getPrototypeOf; -var getGeneratorFunc = function () { // eslint-disable-line consistent-return - if (!hasToStringTag) { - return false; - } - try { - return Function('return function*() {}')(); - } catch (e) { - } -}; -var GeneratorFunction; - -module.exports = function isGeneratorFunction(fn) { - if (typeof fn !== 'function') { - return false; - } - if (isFnRegex.test(fnToStr.call(fn))) { - return true; - } - if (!hasToStringTag) { - var str = toStr.call(fn); - return str === '[object GeneratorFunction]'; - } - if (!getProto) { - return false; - } - if (typeof GeneratorFunction === 'undefined') { - var generatorFunc = getGeneratorFunc(); - GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false; - } - return getProto(fn) === GeneratorFunction; -}; - - -/***/ }), -/* 28 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var forEach = __webpack_require__(29); -var availableTypedArrays = __webpack_require__(31); -var callBound = __webpack_require__(20); -var gOPD = __webpack_require__(32); - -var $toString = callBound('Object.prototype.toString'); -var hasToStringTag = __webpack_require__(18)(); - -var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; -var typedArrays = availableTypedArrays(); - -var $slice = callBound('String.prototype.slice'); -var toStrTags = {}; -var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); -if (hasToStringTag && gOPD && getPrototypeOf) { - forEach(typedArrays, function (typedArray) { - if (typeof g[typedArray] === 'function') { - var arr = new g[typedArray](); - if (Symbol.toStringTag in arr) { - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - } - } - }); -} - -var tryTypedArrays = function tryAllTypedArrays(value) { - var foundName = false; - forEach(toStrTags, function (getter, typedArray) { - if (!foundName) { - try { - var name = getter.call(value); - if (name === typedArray) { - foundName = name; - } - } catch (e) {} - } - }); - return foundName; -}; - -var isTypedArray = __webpack_require__(33); - -module.exports = function whichTypedArray(value) { - if (!isTypedArray(value)) { return false; } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); } - return tryTypedArrays(value); -}; - - -/***/ }), -/* 29 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var isCallable = __webpack_require__(30); - -var toStr = Object.prototype.toString; -var hasOwnProperty = Object.prototype.hasOwnProperty; - -var forEachArray = function forEachArray(array, iterator, receiver) { - for (var i = 0, len = array.length; i < len; i++) { - if (hasOwnProperty.call(array, i)) { - if (receiver == null) { - iterator(array[i], i, array); - } else { - iterator.call(receiver, array[i], i, array); - } - } - } -}; - -var forEachString = function forEachString(string, iterator, receiver) { - for (var i = 0, len = string.length; i < len; i++) { - // no such thing as a sparse string. - if (receiver == null) { - iterator(string.charAt(i), i, string); - } else { - iterator.call(receiver, string.charAt(i), i, string); - } - } -}; - -var forEachObject = function forEachObject(object, iterator, receiver) { - for (var k in object) { - if (hasOwnProperty.call(object, k)) { - if (receiver == null) { - iterator(object[k], k, object); - } else { - iterator.call(receiver, object[k], k, object); - } - } - } -}; - -var forEach = function forEach(list, iterator, thisArg) { - if (!isCallable(iterator)) { - throw new TypeError('iterator must be a function'); - } - - var receiver; - if (arguments.length >= 3) { - receiver = thisArg; - } - - if (toStr.call(list) === '[object Array]') { - forEachArray(list, iterator, receiver); - } else if (typeof list === 'string') { - forEachString(list, iterator, receiver); - } else { - forEachObject(list, iterator, receiver); - } -}; - -module.exports = forEach; - - -/***/ }), -/* 30 */ -/***/ ((module) => { - -"use strict"; - - -var fnToStr = Function.prototype.toString; -var reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply; -var badArrayLike; -var isCallableMarker; -if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') { - try { - badArrayLike = Object.defineProperty({}, 'length', { - get: function () { - throw isCallableMarker; - } - }); - isCallableMarker = {}; - // eslint-disable-next-line no-throw-literal - reflectApply(function () { throw 42; }, null, badArrayLike); - } catch (_) { - if (_ !== isCallableMarker) { - reflectApply = null; - } - } -} else { - reflectApply = null; -} - -var constructorRegex = /^\s*class\b/; -var isES6ClassFn = function isES6ClassFunction(value) { - try { - var fnStr = fnToStr.call(value); - return constructorRegex.test(fnStr); - } catch (e) { - return false; // not a function - } -}; - -var tryFunctionObject = function tryFunctionToStr(value) { - try { - if (isES6ClassFn(value)) { return false; } - fnToStr.call(value); - return true; - } catch (e) { - return false; - } -}; -var toStr = Object.prototype.toString; -var objectClass = '[object Object]'; -var fnClass = '[object Function]'; -var genClass = '[object GeneratorFunction]'; -var ddaClass = '[object HTMLAllCollection]'; // IE 11 -var ddaClass2 = '[object HTML document.all class]'; -var ddaClass3 = '[object HTMLCollection]'; // IE 9-10 -var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag` - -var isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing - -var isDDA = function isDocumentDotAll() { return false; }; -if (typeof document === 'object') { - // Firefox 3 canonicalizes DDA to undefined when it's not accessed directly - var all = document.all; - if (toStr.call(all) === toStr.call(document.all)) { - isDDA = function isDocumentDotAll(value) { - /* globals document: false */ - // in IE 6-8, typeof document.all is "object" and it's truthy - if ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) { - try { - var str = toStr.call(value); - return ( - str === ddaClass - || str === ddaClass2 - || str === ddaClass3 // opera 12.16 - || str === objectClass // IE 6-8 - ) && value('') == null; // eslint-disable-line eqeqeq - } catch (e) { /**/ } - } - return false; - }; - } -} - -module.exports = reflectApply - ? function isCallable(value) { - if (isDDA(value)) { return true; } - if (!value) { return false; } - if (typeof value !== 'function' && typeof value !== 'object') { return false; } - try { - reflectApply(value, null, badArrayLike); - } catch (e) { - if (e !== isCallableMarker) { return false; } - } - return !isES6ClassFn(value) && tryFunctionObject(value); - } - : function isCallable(value) { - if (isDDA(value)) { return true; } - if (!value) { return false; } - if (typeof value !== 'function' && typeof value !== 'object') { return false; } - if (hasToStringTag) { return tryFunctionObject(value); } - if (isES6ClassFn(value)) { return false; } - var strClass = toStr.call(value); - if (strClass !== fnClass && strClass !== genClass && !(/^\[object HTML/).test(strClass)) { return false; } - return tryFunctionObject(value); - }; - - -/***/ }), -/* 31 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var possibleNames = [ - 'BigInt64Array', - 'BigUint64Array', - 'Float32Array', - 'Float64Array', - 'Int16Array', - 'Int32Array', - 'Int8Array', - 'Uint16Array', - 'Uint32Array', - 'Uint8Array', - 'Uint8ClampedArray' -]; - -var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; - -module.exports = function availableTypedArrays() { - var out = []; - for (var i = 0; i < possibleNames.length; i++) { - if (typeof g[possibleNames[i]] === 'function') { - out[out.length] = possibleNames[i]; - } - } - return out; -}; - - -/***/ }), -/* 32 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var GetIntrinsic = __webpack_require__(21); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); - -if ($gOPD) { - try { - $gOPD([], 'length'); - } catch (e) { - // IE 8 has a broken gOPD - $gOPD = null; - } -} - -module.exports = $gOPD; - - -/***/ }), -/* 33 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var forEach = __webpack_require__(29); -var availableTypedArrays = __webpack_require__(31); -var callBound = __webpack_require__(20); - -var $toString = callBound('Object.prototype.toString'); -var hasToStringTag = __webpack_require__(18)(); -var gOPD = __webpack_require__(32); - -var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; -var typedArrays = availableTypedArrays(); - -var $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) { - for (var i = 0; i < array.length; i += 1) { - if (array[i] === value) { - return i; - } - } - return -1; -}; -var $slice = callBound('String.prototype.slice'); -var toStrTags = {}; -var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); -if (hasToStringTag && gOPD && getPrototypeOf) { - forEach(typedArrays, function (typedArray) { - var arr = new g[typedArray](); - if (Symbol.toStringTag in arr) { - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - } - }); -} - -var tryTypedArrays = function tryAllTypedArrays(value) { - var anyTrue = false; - forEach(toStrTags, function (getter, typedArray) { - if (!anyTrue) { - try { - anyTrue = getter.call(value) === typedArray; - } catch (e) { /**/ } - } - }); - return anyTrue; -}; - -module.exports = function isTypedArray(value) { - if (!value || typeof value !== 'object') { return false; } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { - var tag = $slice($toString(value), 8, -1); - return $indexOf(typedArrays, tag) > -1; - } - if (!gOPD) { return false; } - return tryTypedArrays(value); -}; - - -/***/ }), -/* 34 */ -/***/ ((module) => { - -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} - -/***/ }), -/* 35 */ -/***/ ((module) => { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }) - } - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } -} - - -/***/ }), -/* 36 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var process = __webpack_require__(15); -// Currently in sync with Node.js lib/internal/assert/assertion_error.js -// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c - - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } - -function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } - -function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } - -function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var _require = __webpack_require__(14), - inspect = _require.inspect; - -var _require2 = __webpack_require__(13), - ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith - - -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - - return str.substring(this_len - search.length, this_len) === search; -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat - - -function repeat(str, count) { - count = Math.floor(count); - if (str.length == 0 || count == 0) return ''; - var maxCount = str.length * count; - count = Math.floor(Math.log(count) / Math.log(2)); - - while (count) { - str += str; - count--; - } - - str += str.substring(0, maxCount - str.length); - return str; -} - -var blue = ''; -var green = ''; -var red = ''; -var white = ''; -var kReadableOperator = { - deepStrictEqual: 'Expected values to be strictly deep-equal:', - strictEqual: 'Expected values to be strictly equal:', - strictEqualObject: 'Expected "actual" to be reference-equal to "expected":', - deepEqual: 'Expected values to be loosely deep-equal:', - equal: 'Expected values to be loosely equal:', - notDeepStrictEqual: 'Expected "actual" not to be strictly deep-equal to:', - notStrictEqual: 'Expected "actual" to be strictly unequal to:', - notStrictEqualObject: 'Expected "actual" not to be reference-equal to "expected":', - notDeepEqual: 'Expected "actual" not to be loosely deep-equal to:', - notEqual: 'Expected "actual" to be loosely unequal to:', - notIdentical: 'Values identical but not reference-equal:' -}; // Comparing short primitives should just show === / !== instead of using the -// diff. - -var kMaxShortLength = 10; - -function copyError(source) { - var keys = Object.keys(source); - var target = Object.create(Object.getPrototypeOf(source)); - keys.forEach(function (key) { - target[key] = source[key]; - }); - Object.defineProperty(target, 'message', { - value: source.message - }); - return target; -} - -function inspectValue(val) { - // The util.inspect default values could be changed. This makes sure the - // error messages contain the necessary information nevertheless. - return inspect(val, { - compact: false, - customInspect: false, - depth: 1000, - maxArrayLength: Infinity, - // Assert compares only enumerable properties (with a few exceptions). - showHidden: false, - // Having a long line as error is better than wrapping the line for - // comparison for now. - // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we - // have meta information about the inspected properties (i.e., know where - // in what line the property starts and ends). - breakLength: Infinity, - // Assert does not detect proxies currently. - showProxy: false, - sorted: true, - // Inspect getters as we also check them when comparing entries. - getters: true - }); -} - -function createErrDiff(actual, expected, operator) { - var other = ''; - var res = ''; - var lastPos = 0; - var end = ''; - var skipped = false; - var actualInspected = inspectValue(actual); - var actualLines = actualInspected.split('\n'); - var expectedLines = inspectValue(expected).split('\n'); - var i = 0; - var indicator = ''; // In case both values are objects explicitly mark them as not reference equal - // for the `strictEqual` operator. - - if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) { - operator = 'strictEqualObject'; - } // If "actual" and "expected" fit on a single line and they are not strictly - // equal, check further special handling. - - - if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) { - var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of "actual" and "expected" together is less than - // kMaxShortLength and if neither is an object and at least one of them is - // not `zero`, use the strict equal comparison to visualize the output. - - if (inputLength <= kMaxShortLength) { - if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) { - // -0 === +0 - return "".concat(kReadableOperator[operator], "\n\n") + "".concat(actualLines[0], " !== ").concat(expectedLines[0], "\n"); - } - } else if (operator !== 'strictEqualObject') { - // If the stderr is a tty and the input length is lower than the current - // columns per line, add a mismatch indicator below the output. If it is - // not a tty, use a default value of 80 characters. - var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80; - - if (inputLength < maxLength) { - while (actualLines[0][i] === expectedLines[0][i]) { - i++; - } // Ignore the first characters. - - - if (i > 2) { - // Add position indicator for the first mismatch in case it is a - // single line and the input length is less than the column length. - indicator = "\n ".concat(repeat(' ', i), "^"); - i = 0; - } - } - } - } // Remove all ending lines that match (this optimizes the output for - // readability by reducing the number of total changed lines). - - - var a = actualLines[actualLines.length - 1]; - var b = expectedLines[expectedLines.length - 1]; - - while (a === b) { - if (i++ < 2) { - end = "\n ".concat(a).concat(end); - } else { - other = a; - } - - actualLines.pop(); - expectedLines.pop(); - if (actualLines.length === 0 || expectedLines.length === 0) break; - a = actualLines[actualLines.length - 1]; - b = expectedLines[expectedLines.length - 1]; - } - - var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference. - // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() }) - - if (maxLines === 0) { - // We have to get the result again. The lines were all removed before. - var _actualLines = actualInspected.split('\n'); // Only remove lines in case it makes sense to collapse those. - // TODO: Accept env to always show the full error. - - - if (_actualLines.length > 30) { - _actualLines[26] = "".concat(blue, "...").concat(white); - - while (_actualLines.length > 27) { - _actualLines.pop(); - } - } - - return "".concat(kReadableOperator.notIdentical, "\n\n").concat(_actualLines.join('\n'), "\n"); - } - - if (i > 3) { - end = "\n".concat(blue, "...").concat(white).concat(end); - skipped = true; - } - - if (other !== '') { - end = "\n ".concat(other).concat(end); - other = ''; - } - - var printedLines = 0; - var msg = kReadableOperator[operator] + "\n".concat(green, "+ actual").concat(white, " ").concat(red, "- expected").concat(white); - var skippedMsg = " ".concat(blue, "...").concat(white, " Lines skipped"); - - for (i = 0; i < maxLines; i++) { - // Only extra expected lines exist - var cur = i - lastPos; - - if (actualLines.length < i + 1) { - // If the last diverging line is more than one line above and the - // current line is at least line three, add some of the former lines and - // also add dots to indicate skipped entries. - if (cur > 1 && i > 2) { - if (cur > 4) { - res += "\n".concat(blue, "...").concat(white); - skipped = true; - } else if (cur > 3) { - res += "\n ".concat(expectedLines[i - 2]); - printedLines++; - } - - res += "\n ".concat(expectedLines[i - 1]); - printedLines++; - } // Mark the current line as the last diverging one. - - - lastPos = i; // Add the expected line to the cache. - - other += "\n".concat(red, "-").concat(white, " ").concat(expectedLines[i]); - printedLines++; // Only extra actual lines exist - } else if (expectedLines.length < i + 1) { - // If the last diverging line is more than one line above and the - // current line is at least line three, add some of the former lines and - // also add dots to indicate skipped entries. - if (cur > 1 && i > 2) { - if (cur > 4) { - res += "\n".concat(blue, "...").concat(white); - skipped = true; - } else if (cur > 3) { - res += "\n ".concat(actualLines[i - 2]); - printedLines++; - } - - res += "\n ".concat(actualLines[i - 1]); - printedLines++; - } // Mark the current line as the last diverging one. - - - lastPos = i; // Add the actual line to the result. - - res += "\n".concat(green, "+").concat(white, " ").concat(actualLines[i]); - printedLines++; // Lines diverge - } else { - var expectedLine = expectedLines[i]; - var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by - // a trailing comma. In that case it is actually identical and we should - // mark it as such. - - var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical, - // add a comma at the end of the actual line. Otherwise the output could - // look weird as in: - // - // [ - // 1 // No comma at the end! - // + 2 - // ] - // - - if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) { - divergingLines = false; - actualLine += ','; - } - - if (divergingLines) { - // If the last diverging line is more than one line above and the - // current line is at least line three, add some of the former lines and - // also add dots to indicate skipped entries. - if (cur > 1 && i > 2) { - if (cur > 4) { - res += "\n".concat(blue, "...").concat(white); - skipped = true; - } else if (cur > 3) { - res += "\n ".concat(actualLines[i - 2]); - printedLines++; - } - - res += "\n ".concat(actualLines[i - 1]); - printedLines++; - } // Mark the current line as the last diverging one. - - - lastPos = i; // Add the actual line to the result and cache the expected diverging - // line so consecutive diverging lines show up as +++--- and not +-+-+-. - - res += "\n".concat(green, "+").concat(white, " ").concat(actualLine); - other += "\n".concat(red, "-").concat(white, " ").concat(expectedLine); - printedLines += 2; // Lines are identical - } else { - // Add all cached information to the result before adding other things - // and reset the cache. - res += other; - other = ''; // If the last diverging line is exactly one line above or if it is the - // very first line, add the line to the result. - - if (cur === 1 || i === 0) { - res += "\n ".concat(actualLine); - printedLines++; - } - } - } // Inspected object to big (Show ~20 rows max) - - - if (printedLines > 20 && i < maxLines - 2) { - return "".concat(msg).concat(skippedMsg, "\n").concat(res, "\n").concat(blue, "...").concat(white).concat(other, "\n") + "".concat(blue, "...").concat(white); - } - } - - return "".concat(msg).concat(skipped ? skippedMsg : '', "\n").concat(res).concat(other).concat(end).concat(indicator); -} - -var AssertionError = -/*#__PURE__*/ -function (_Error) { - _inherits(AssertionError, _Error); - - function AssertionError(options) { - var _this; - - _classCallCheck(this, AssertionError); - - if (_typeof(options) !== 'object' || options === null) { - throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); - } - - var message = options.message, - operator = options.operator, - stackStartFn = options.stackStartFn; - var actual = options.actual, - expected = options.expected; - var limit = Error.stackTraceLimit; - Error.stackTraceLimit = 0; - - if (message != null) { - _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message))); - } else { - if (process.stderr && process.stderr.isTTY) { - // Reset on each call to make sure we handle dynamically set environment - // variables correct. - if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) { - blue = "\x1B[34m"; - green = "\x1B[32m"; - white = "\x1B[39m"; - red = "\x1B[31m"; - } else { - blue = ''; - green = ''; - white = ''; - red = ''; - } - } // Prevent the error stack from being visible by duplicating the error - // in a very close way to the original in case both sides are actually - // instances of Error. - - - if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) { - actual = copyError(actual); - expected = copyError(expected); - } - - if (operator === 'deepStrictEqual' || operator === 'strictEqual') { - _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator))); - } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') { - // In case the objects are equal but the operator requires unequal, show - // the first object and say A equals B - var base = kReadableOperator[operator]; - var res = inspectValue(actual).split('\n'); // In case "actual" is an object, it should not be reference equal. - - if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) { - base = kReadableOperator.notStrictEqualObject; - } // Only remove lines in case it makes sense to collapse those. - // TODO: Accept env to always show the full error. - - - if (res.length > 30) { - res[26] = "".concat(blue, "...").concat(white); - - while (res.length > 27) { - res.pop(); - } - } // Only print a single input. - - - if (res.length === 1) { - _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, "".concat(base, " ").concat(res[0]))); - } else { - _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, "".concat(base, "\n\n").concat(res.join('\n'), "\n"))); - } - } else { - var _res = inspectValue(actual); - - var other = ''; - var knownOperators = kReadableOperator[operator]; - - if (operator === 'notDeepEqual' || operator === 'notEqual') { - _res = "".concat(kReadableOperator[operator], "\n\n").concat(_res); - - if (_res.length > 1024) { - _res = "".concat(_res.slice(0, 1021), "..."); - } - } else { - other = "".concat(inspectValue(expected)); - - if (_res.length > 512) { - _res = "".concat(_res.slice(0, 509), "..."); - } - - if (other.length > 512) { - other = "".concat(other.slice(0, 509), "..."); - } - - if (operator === 'deepEqual' || operator === 'equal') { - _res = "".concat(knownOperators, "\n\n").concat(_res, "\n\nshould equal\n\n"); - } else { - other = " ".concat(operator, " ").concat(other); - } - } - - _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, "".concat(_res).concat(other))); - } - } - - Error.stackTraceLimit = limit; - _this.generatedMessage = !message; - Object.defineProperty(_assertThisInitialized(_this), 'name', { - value: 'AssertionError [ERR_ASSERTION]', - enumerable: false, - writable: true, - configurable: true - }); - _this.code = 'ERR_ASSERTION'; - _this.actual = actual; - _this.expected = expected; - _this.operator = operator; - - if (Error.captureStackTrace) { - // eslint-disable-next-line no-restricted-syntax - Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn); - } // Create error message including the error code in the name. - - - _this.stack; // Reset the name. - - _this.name = 'AssertionError'; - return _possibleConstructorReturn(_this); - } - - _createClass(AssertionError, [{ - key: "toString", - value: function toString() { - return "".concat(this.name, " [").concat(this.code, "]: ").concat(this.message); - } - }, { - key: inspect.custom, - value: function value(recurseTimes, ctx) { - // This limits the `actual` and `expected` property default inspection to - // the minimum depth. Otherwise those values would be too verbose compared - // to the actual error message which contains a combined view of these two - // input values. - return inspect(this, _objectSpread({}, ctx, { - customInspect: false, - depth: 0 - })); - } - }]); - - return AssertionError; -}(_wrapNativeSuper(Error)); - -module.exports = AssertionError; - -/***/ }), -/* 37 */ -/***/ ((module) => { - -"use strict"; -/** - * Code refactored from Mozilla Developer Network: - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign - */ - - - -function assign(target, firstSource) { - if (target === undefined || target === null) { - throw new TypeError('Cannot convert first argument to object'); - } - - var to = Object(target); - for (var i = 1; i < arguments.length; i++) { - var nextSource = arguments[i]; - if (nextSource === undefined || nextSource === null) { - continue; - } - - var keysArray = Object.keys(Object(nextSource)); - for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) { - var nextKey = keysArray[nextIndex]; - var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - to[nextKey] = nextSource[nextKey]; - } - } - } - return to; -} - -function polyfill() { - if (!Object.assign) { - Object.defineProperty(Object, 'assign', { - enumerable: false, - configurable: true, - writable: true, - value: assign - }); - } -} - -module.exports = { - assign: assign, - polyfill: polyfill -}; - - -/***/ }), -/* 38 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var define = __webpack_require__(39); -var callBind = __webpack_require__(26); - -var implementation = __webpack_require__(44); -var getPolyfill = __webpack_require__(45); -var shim = __webpack_require__(46); - -var polyfill = callBind(getPolyfill(), Object); - -define(polyfill, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = polyfill; - - -/***/ }), -/* 39 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var keys = __webpack_require__(40); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; - -var toStr = Object.prototype.toString; -var concat = Array.prototype.concat; -var origDefineProperty = Object.defineProperty; - -var isFunction = function (fn) { - return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; -}; - -var hasPropertyDescriptors = __webpack_require__(43)(); - -var supportsDescriptors = origDefineProperty && hasPropertyDescriptors; - -var defineProperty = function (object, name, value, predicate) { - if (name in object) { - if (predicate === true) { - if (object[name] === value) { - return; - } - } else if (!isFunction(predicate) || !predicate()) { - return; - } - } - if (supportsDescriptors) { - origDefineProperty(object, name, { - configurable: true, - enumerable: false, - value: value, - writable: true - }); - } else { - object[name] = value; // eslint-disable-line no-param-reassign - } -}; - -var defineProperties = function (object, map) { - var predicates = arguments.length > 2 ? arguments[2] : {}; - var props = keys(map); - if (hasSymbols) { - props = concat.call(props, Object.getOwnPropertySymbols(map)); - } - for (var i = 0; i < props.length; i += 1) { - defineProperty(object, props[i], map[props[i]], predicates[props[i]]); - } -}; - -defineProperties.supportsDescriptors = !!supportsDescriptors; - -module.exports = defineProperties; - - -/***/ }), -/* 40 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var slice = Array.prototype.slice; -var isArgs = __webpack_require__(41); - -var origKeys = Object.keys; -var keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(42); - -var originalKeys = Object.keys; - -keysShim.shim = function shimObjectKeys() { - if (Object.keys) { - var keysWorksWithArguments = (function () { - // Safari 5.0 bug - var args = Object.keys(arguments); - return args && args.length === arguments.length; - }(1, 2)); - if (!keysWorksWithArguments) { - Object.keys = function keys(object) { // eslint-disable-line func-name-matching - if (isArgs(object)) { - return originalKeys(slice.call(object)); - } - return originalKeys(object); - }; - } - } else { - Object.keys = keysShim; - } - return Object.keys || keysShim; -}; - -module.exports = keysShim; - - -/***/ }), -/* 41 */ -/***/ ((module) => { - -"use strict"; - - -var toStr = Object.prototype.toString; - -module.exports = function isArguments(value) { - var str = toStr.call(value); - var isArgs = str === '[object Arguments]'; - if (!isArgs) { - isArgs = str !== '[object Array]' && - value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - toStr.call(value.callee) === '[object Function]'; - } - return isArgs; -}; - - -/***/ }), -/* 42 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var keysShim; -if (!Object.keys) { - // modified from https://github.com/es-shims/es5-shim - var has = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; - var isArgs = __webpack_require__(41); // eslint-disable-line global-require - var isEnumerable = Object.prototype.propertyIsEnumerable; - var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); - var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); - var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ]; - var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; - }; - var excludedKeys = { - $applicationCache: true, - $console: true, - $external: true, - $frame: true, - $frameElement: true, - $frames: true, - $innerHeight: true, - $innerWidth: true, - $onmozfullscreenchange: true, - $onmozfullscreenerror: true, - $outerHeight: true, - $outerWidth: true, - $pageXOffset: true, - $pageYOffset: true, - $parent: true, - $scrollLeft: true, - $scrollTop: true, - $scrollX: true, - $scrollY: true, - $self: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $window: true - }; - var hasAutomationEqualityBug = (function () { - /* global window */ - if (typeof window === 'undefined') { return false; } - for (var k in window) { - try { - if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; - } - } - } catch (e) { - return true; - } - } - return false; - }()); - var equalsConstructorPrototypeIfNotBuggy = function (o) { - /* global window */ - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(o); - } - try { - return equalsConstructorPrototype(o); - } catch (e) { - return false; - } - }; - - keysShim = function keys(object) { - var isObject = object !== null && typeof object === 'object'; - var isFunction = toStr.call(object) === '[object Function]'; - var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === '[object String]'; - var theKeys = []; - - if (!isObject && !isFunction && !isArguments) { - throw new TypeError('Object.keys called on a non-object'); - } - - var skipProto = hasProtoEnumBug && isFunction; - if (isString && object.length > 0 && !has.call(object, 0)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)); - } - } - - if (isArguments && object.length > 0) { - for (var j = 0; j < object.length; ++j) { - theKeys.push(String(j)); - } - } else { - for (var name in object) { - if (!(skipProto && name === 'prototype') && has.call(object, name)) { - theKeys.push(String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - - for (var k = 0; k < dontEnums.length; ++k) { - if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { - theKeys.push(dontEnums[k]); - } - } - } - return theKeys; - }; -} -module.exports = keysShim; - - -/***/ }), -/* 43 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var GetIntrinsic = __webpack_require__(21); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); - -var hasPropertyDescriptors = function hasPropertyDescriptors() { - if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - return true; - } catch (e) { - // IE 8 has a broken defineProperty - return false; - } - } - return false; -}; - -hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { - // node v0.6 has a bug where array lengths can be Set but not Defined - if (!hasPropertyDescriptors()) { - return null; - } - try { - return $defineProperty([], 'length', { value: 1 }).length !== 1; - } catch (e) { - // In Firefox 4-22, defining length on an array throws an exception. - return true; - } -}; - -module.exports = hasPropertyDescriptors; - - -/***/ }), -/* 44 */ -/***/ ((module) => { - -"use strict"; - - -var numberIsNaN = function (value) { - return value !== value; -}; - -module.exports = function is(a, b) { - if (a === 0 && b === 0) { - return 1 / a === 1 / b; - } - if (a === b) { - return true; - } - if (numberIsNaN(a) && numberIsNaN(b)) { - return true; - } - return false; -}; - - - -/***/ }), -/* 45 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var implementation = __webpack_require__(44); - -module.exports = function getPolyfill() { - return typeof Object.is === 'function' ? Object.is : implementation; -}; - - -/***/ }), -/* 46 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var getPolyfill = __webpack_require__(45); -var define = __webpack_require__(39); - -module.exports = function shimObjectIs() { - var polyfill = getPolyfill(); - define(Object, { is: polyfill }, { - is: function testObjectIs() { - return Object.is !== polyfill; - } - }); - return polyfill; -}; - - -/***/ }), -/* 47 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -// Currently in sync with Node.js lib/internal/util/comparisons.js -// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9 - - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var regexFlagsSupported = /a/g.flags !== undefined; - -var arrayFromSet = function arrayFromSet(set) { - var array = []; - set.forEach(function (value) { - return array.push(value); - }); - return array; -}; - -var arrayFromMap = function arrayFromMap(map) { - var array = []; - map.forEach(function (value, key) { - return array.push([key, value]); - }); - return array; -}; - -var objectIs = Object.is ? Object.is : __webpack_require__(38); -var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () { - return []; -}; -var numberIsNaN = Number.isNaN ? Number.isNaN : __webpack_require__(48); - -function uncurryThis(f) { - return f.call.bind(f); -} - -var hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty); -var propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable); -var objectToString = uncurryThis(Object.prototype.toString); - -var _require$types = (__webpack_require__(14).types), - isAnyArrayBuffer = _require$types.isAnyArrayBuffer, - isArrayBufferView = _require$types.isArrayBufferView, - isDate = _require$types.isDate, - isMap = _require$types.isMap, - isRegExp = _require$types.isRegExp, - isSet = _require$types.isSet, - isNativeError = _require$types.isNativeError, - isBoxedPrimitive = _require$types.isBoxedPrimitive, - isNumberObject = _require$types.isNumberObject, - isStringObject = _require$types.isStringObject, - isBooleanObject = _require$types.isBooleanObject, - isBigIntObject = _require$types.isBigIntObject, - isSymbolObject = _require$types.isSymbolObject, - isFloat32Array = _require$types.isFloat32Array, - isFloat64Array = _require$types.isFloat64Array; - -function isNonIndex(key) { - if (key.length === 0 || key.length > 10) return true; - - for (var i = 0; i < key.length; i++) { - var code = key.charCodeAt(i); - if (code < 48 || code > 57) return true; - } // The maximum size for an array is 2 ** 32 -1. - - - return key.length === 10 && key >= Math.pow(2, 32); -} - -function getOwnNonIndexProperties(value) { - return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value))); -} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js -// original notice: - -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - - -function compare(a, b) { - if (a === b) { - return 0; - } - - var x = a.length; - var y = b.length; - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i]; - y = b[i]; - break; - } - } - - if (x < y) { - return -1; - } - - if (y < x) { - return 1; - } - - return 0; -} - -var ONLY_ENUMERABLE = undefined; -var kStrict = true; -var kLoose = false; -var kNoIterator = 0; -var kIsArray = 1; -var kIsSet = 2; -var kIsMap = 3; // Check if they have the same source and flags - -function areSimilarRegExps(a, b) { - return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b); -} - -function areSimilarFloatArrays(a, b) { - if (a.byteLength !== b.byteLength) { - return false; - } - - for (var offset = 0; offset < a.byteLength; offset++) { - if (a[offset] !== b[offset]) { - return false; - } - } - - return true; -} - -function areSimilarTypedArrays(a, b) { - if (a.byteLength !== b.byteLength) { - return false; - } - - return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0; -} - -function areEqualArrayBuffers(buf1, buf2) { - return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0; -} - -function isEqualBoxedPrimitive(val1, val2) { - if (isNumberObject(val1)) { - return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2)); - } - - if (isStringObject(val1)) { - return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2); - } - - if (isBooleanObject(val1)) { - return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2); - } - - if (isBigIntObject(val1)) { - return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2); - } - - return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2); -} // Notes: Type tags are historical [[Class]] properties that can be set by -// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS -// and retrieved using Object.prototype.toString.call(obj) in JS -// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring -// for a list of tags pre-defined in the spec. -// There are some unspecified tags in the wild too (e.g. typed array tags). -// Since tags can be altered, they only serve fast failures -// -// Typed arrays and buffers are checked by comparing the content in their -// underlying ArrayBuffer. This optimization requires that it's -// reasonable to interpret their underlying memory in the same way, -// which is checked by comparing their type tags. -// (e.g. a Uint8Array and a Uint16Array with the same memory content -// could still be different because they will be interpreted differently). -// -// For strict comparison, objects should have -// a) The same built-in type tags -// b) The same prototypes. - - -function innerDeepEqual(val1, val2, strict, memos) { - // All identical values are equivalent, as determined by ===. - if (val1 === val2) { - if (val1 !== 0) return true; - return strict ? objectIs(val1, val2) : true; - } // Check more closely if val1 and val2 are equal. - - - if (strict) { - if (_typeof(val1) !== 'object') { - return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2); - } - - if (_typeof(val2) !== 'object' || val1 === null || val2 === null) { - return false; - } - - if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) { - return false; - } - } else { - if (val1 === null || _typeof(val1) !== 'object') { - if (val2 === null || _typeof(val2) !== 'object') { - // eslint-disable-next-line eqeqeq - return val1 == val2; - } - - return false; - } - - if (val2 === null || _typeof(val2) !== 'object') { - return false; - } - } - - var val1Tag = objectToString(val1); - var val2Tag = objectToString(val2); - - if (val1Tag !== val2Tag) { - return false; - } - - if (Array.isArray(val1)) { - // Check for sparse arrays and general fast path - if (val1.length !== val2.length) { - return false; - } - - var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE); - var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE); - - if (keys1.length !== keys2.length) { - return false; - } - - return keyCheck(val1, val2, strict, memos, kIsArray, keys1); - } // [browserify] This triggers on certain types in IE (Map/Set) so we don't - // wan't to early return out of the rest of the checks. However we can check - // if the second value is one of these values and the first isn't. - - - if (val1Tag === '[object Object]') { - // return keyCheck(val1, val2, strict, memos, kNoIterator); - if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) { - return false; - } - } - - if (isDate(val1)) { - if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) { - return false; - } - } else if (isRegExp(val1)) { - if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) { - return false; - } - } else if (isNativeError(val1) || val1 instanceof Error) { - // Do not compare the stack as it might differ even though the error itself - // is otherwise identical. - if (val1.message !== val2.message || val1.name !== val2.name) { - return false; - } - } else if (isArrayBufferView(val1)) { - if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) { - if (!areSimilarFloatArrays(val1, val2)) { - return false; - } - } else if (!areSimilarTypedArrays(val1, val2)) { - return false; - } // Buffer.compare returns true, so val1.length === val2.length. If they both - // only contain numeric keys, we don't need to exam further than checking - // the symbols. - - - var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE); - - var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE); - - if (_keys.length !== _keys2.length) { - return false; - } - - return keyCheck(val1, val2, strict, memos, kNoIterator, _keys); - } else if (isSet(val1)) { - if (!isSet(val2) || val1.size !== val2.size) { - return false; - } - - return keyCheck(val1, val2, strict, memos, kIsSet); - } else if (isMap(val1)) { - if (!isMap(val2) || val1.size !== val2.size) { - return false; - } - - return keyCheck(val1, val2, strict, memos, kIsMap); - } else if (isAnyArrayBuffer(val1)) { - if (!areEqualArrayBuffers(val1, val2)) { - return false; - } - } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) { - return false; - } - - return keyCheck(val1, val2, strict, memos, kNoIterator); -} - -function getEnumerables(val, keys) { - return keys.filter(function (k) { - return propertyIsEnumerable(val, k); - }); -} - -function keyCheck(val1, val2, strict, memos, iterationType, aKeys) { - // For all remaining Object pairs, including Array, objects and Maps, - // equivalence is determined by having: - // a) The same number of owned enumerable properties - // b) The same set of keys/indexes (although not necessarily the same order) - // c) Equivalent values for every corresponding key/index - // d) For Sets and Maps, equal contents - // Note: this accounts for both named and indexed properties on Arrays. - if (arguments.length === 5) { - aKeys = Object.keys(val1); - var bKeys = Object.keys(val2); // The pair must have the same number of owned properties. - - if (aKeys.length !== bKeys.length) { - return false; - } - } // Cheap key test - - - var i = 0; - - for (; i < aKeys.length; i++) { - if (!hasOwnProperty(val2, aKeys[i])) { - return false; - } - } - - if (strict && arguments.length === 5) { - var symbolKeysA = objectGetOwnPropertySymbols(val1); - - if (symbolKeysA.length !== 0) { - var count = 0; - - for (i = 0; i < symbolKeysA.length; i++) { - var key = symbolKeysA[i]; - - if (propertyIsEnumerable(val1, key)) { - if (!propertyIsEnumerable(val2, key)) { - return false; - } - - aKeys.push(key); - count++; - } else if (propertyIsEnumerable(val2, key)) { - return false; - } - } - - var symbolKeysB = objectGetOwnPropertySymbols(val2); - - if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) { - return false; - } - } else { - var _symbolKeysB = objectGetOwnPropertySymbols(val2); - - if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) { - return false; - } - } - } - - if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) { - return true; - } // Use memos to handle cycles. - - - if (memos === undefined) { - memos = { - val1: new Map(), - val2: new Map(), - position: 0 - }; - } else { - // We prevent up to two map.has(x) calls by directly retrieving the value - // and checking for undefined. The map can only contain numbers, so it is - // safe to check for undefined only. - var val2MemoA = memos.val1.get(val1); - - if (val2MemoA !== undefined) { - var val2MemoB = memos.val2.get(val2); - - if (val2MemoB !== undefined) { - return val2MemoA === val2MemoB; - } - } - - memos.position++; - } - - memos.val1.set(val1, memos.position); - memos.val2.set(val2, memos.position); - var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType); - memos.val1.delete(val1); - memos.val2.delete(val2); - return areEq; -} - -function setHasEqualElement(set, val1, strict, memo) { - // Go looking. - var setValues = arrayFromSet(set); - - for (var i = 0; i < setValues.length; i++) { - var val2 = setValues[i]; - - if (innerDeepEqual(val1, val2, strict, memo)) { - // Remove the matching element to make sure we do not check that again. - set.delete(val2); - return true; - } - } - - return false; -} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using -// Sadly it is not possible to detect corresponding values properly in case the -// type is a string, number, bigint or boolean. The reason is that those values -// can match lots of different string values (e.g., 1n == '+00001'). - - -function findLooseMatchingPrimitives(prim) { - switch (_typeof(prim)) { - case 'undefined': - return null; - - case 'object': - // Only pass in null as object! - return undefined; - - case 'symbol': - return false; - - case 'string': - prim = +prim; - // Loose equal entries exist only if the string is possible to convert to - // a regular number and not NaN. - // Fall through - - case 'number': - if (numberIsNaN(prim)) { - return false; - } - - } - - return true; -} - -function setMightHaveLoosePrim(a, b, prim) { - var altValue = findLooseMatchingPrimitives(prim); - if (altValue != null) return altValue; - return b.has(altValue) && !a.has(altValue); -} - -function mapMightHaveLoosePrim(a, b, prim, item, memo) { - var altValue = findLooseMatchingPrimitives(prim); - - if (altValue != null) { - return altValue; - } - - var curB = b.get(altValue); - - if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) { - return false; - } - - return !a.has(altValue) && innerDeepEqual(item, curB, false, memo); -} - -function setEquiv(a, b, strict, memo) { - // This is a lazily initiated Set of entries which have to be compared - // pairwise. - var set = null; - var aValues = arrayFromSet(a); - - for (var i = 0; i < aValues.length; i++) { - var val = aValues[i]; // Note: Checking for the objects first improves the performance for object - // heavy sets but it is a minor slow down for primitives. As they are fast - // to check this improves the worst case scenario instead. - - if (_typeof(val) === 'object' && val !== null) { - if (set === null) { - set = new Set(); - } // If the specified value doesn't exist in the second set its an not null - // object (or non strict only: a not matching primitive) we'll need to go - // hunting for something thats deep-(strict-)equal to it. To make this - // O(n log n) complexity we have to copy these values in a new set first. - - - set.add(val); - } else if (!b.has(val)) { - if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values. - - if (!setMightHaveLoosePrim(a, b, val)) { - return false; - } - - if (set === null) { - set = new Set(); - } - - set.add(val); - } - } - - if (set !== null) { - var bValues = arrayFromSet(b); - - for (var _i = 0; _i < bValues.length; _i++) { - var _val = bValues[_i]; // We have to check if a primitive value is already - // matching and only if it's not, go hunting for it. - - if (_typeof(_val) === 'object' && _val !== null) { - if (!setHasEqualElement(set, _val, strict, memo)) return false; - } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) { - return false; - } - } - - return set.size === 0; - } - - return true; -} - -function mapHasEqualEntry(set, map, key1, item1, strict, memo) { - // To be able to handle cases like: - // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']]) - // ... we need to consider *all* matching keys, not just the first we find. - var setValues = arrayFromSet(set); - - for (var i = 0; i < setValues.length; i++) { - var key2 = setValues[i]; - - if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) { - set.delete(key2); - return true; - } - } - - return false; -} - -function mapEquiv(a, b, strict, memo) { - var set = null; - var aEntries = arrayFromMap(a); - - for (var i = 0; i < aEntries.length; i++) { - var _aEntries$i = _slicedToArray(aEntries[i], 2), - key = _aEntries$i[0], - item1 = _aEntries$i[1]; - - if (_typeof(key) === 'object' && key !== null) { - if (set === null) { - set = new Set(); - } - - set.add(key); - } else { - // By directly retrieving the value we prevent another b.has(key) check in - // almost all possible cases. - var item2 = b.get(key); - - if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) { - if (strict) return false; // Fast path to detect missing string, symbol, undefined and null - // keys. - - if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false; - - if (set === null) { - set = new Set(); - } - - set.add(key); - } - } - } - - if (set !== null) { - var bEntries = arrayFromMap(b); - - for (var _i2 = 0; _i2 < bEntries.length; _i2++) { - var _bEntries$_i = _slicedToArray(bEntries[_i2], 2), - key = _bEntries$_i[0], - item = _bEntries$_i[1]; - - if (_typeof(key) === 'object' && key !== null) { - if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false; - } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) { - return false; - } - } - - return set.size === 0; - } - - return true; -} - -function objEquiv(a, b, strict, keys, memos, iterationType) { - // Sets and maps don't have their entries accessible via normal object - // properties. - var i = 0; - - if (iterationType === kIsSet) { - if (!setEquiv(a, b, strict, memos)) { - return false; - } - } else if (iterationType === kIsMap) { - if (!mapEquiv(a, b, strict, memos)) { - return false; - } - } else if (iterationType === kIsArray) { - for (; i < a.length; i++) { - if (hasOwnProperty(a, i)) { - if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) { - return false; - } - } else if (hasOwnProperty(b, i)) { - return false; - } else { - // Array is sparse. - var keysA = Object.keys(a); - - for (; i < keysA.length; i++) { - var key = keysA[i]; - - if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) { - return false; - } - } - - if (keysA.length !== Object.keys(b).length) { - return false; - } - - return true; - } - } - } // The pair must have equivalent values for every corresponding key. - // Possibly expensive deep test: - - - for (i = 0; i < keys.length; i++) { - var _key = keys[i]; - - if (!innerDeepEqual(a[_key], b[_key], strict, memos)) { - return false; - } - } - - return true; -} - -function isDeepEqual(val1, val2) { - return innerDeepEqual(val1, val2, kLoose); -} - -function isDeepStrictEqual(val1, val2) { - return innerDeepEqual(val1, val2, kStrict); -} - -module.exports = { - isDeepEqual: isDeepEqual, - isDeepStrictEqual: isDeepStrictEqual -}; - -/***/ }), -/* 48 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var callBind = __webpack_require__(26); -var define = __webpack_require__(39); - -var implementation = __webpack_require__(49); -var getPolyfill = __webpack_require__(50); -var shim = __webpack_require__(51); - -var polyfill = callBind(getPolyfill(), Number); - -/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */ - -define(polyfill, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = polyfill; - - -/***/ }), -/* 49 */ -/***/ ((module) => { - -"use strict"; - - -/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */ - -module.exports = function isNaN(value) { - return value !== value; -}; - - -/***/ }), -/* 50 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var implementation = __webpack_require__(49); - -module.exports = function getPolyfill() { - if (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) { - return Number.isNaN; - } - return implementation; -}; - - -/***/ }), -/* 51 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var define = __webpack_require__(39); -var getPolyfill = __webpack_require__(50); - -/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */ - -module.exports = function shimNumberIsNaN() { - var polyfill = getPolyfill(); - define(Number, { isNaN: polyfill }, { - isNaN: function testIsNaN() { - return Number.isNaN !== polyfill; - } - }); - return polyfill; -}; - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -var exports = __webpack_exports__; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.run = void 0; -// Imports mocha for the browser, defining the `mocha` global. -__webpack_require__(8); -function run() { - return new Promise((c, e) => { - mocha.setup({ - ui: 'tdd', - reporter: undefined - }); - // Bundles all files in the current directory matching `*.test` - const importAll = (r) => r.keys().forEach(r); - importAll(__webpack_require__(10)); - try { - // Run the mocha test - mocha.run(failures => { - if (failures > 0) { - e(new Error(`${failures} tests failed.`)); - } - else { - c(); - } - }); - } - catch (err) { - console.error(err); - e(err); - } - }); -} -exports.run = run; - -})(); - -var __webpack_export_target__ = exports; -for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; -if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); -/******/ })() -; -//# sourceMappingURL=index.js.map \ No newline at end of file +/*! For license information please see index.js.LICENSE.txt */ +(()=>{var e={9282:(e,t,r)=>{"use strict";var n=r(4155);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var i,a,s=r(2136).codes,u=s.ERR_AMBIGUOUS_ARGUMENT,c=s.ERR_INVALID_ARG_TYPE,l=s.ERR_INVALID_ARG_VALUE,f=s.ERR_INVALID_RETURN_VALUE,p=s.ERR_MISSING_ARGS,h=r(5961),d=r(9539).inspect,g=r(9539).types,y=g.isPromise,m=g.isRegExp,b=Object.assign?Object.assign:r(8091).assign,v=Object.is?Object.is:r(609);function w(){var e=r(9158);i=e.isDeepEqual,a=e.isDeepStrictEqual}new Map;var E=!1,A=e.exports=x,_={};function T(e){if(e.message instanceof Error)throw e.message;throw new h(e)}function S(e,t,r,n){if(!r){var o=!1;if(0===t)o=!0,n="No value argument passed to `assert.ok()`";else if(n instanceof Error)throw n;var i=new h({actual:r,expected:!0,message:n,operator:"==",stackStartFn:e});throw i.generatedMessage=o,i}}function x(){for(var e=arguments.length,t=new Array(e),r=0;r1?r-1:0),o=1;o1?r-1:0),o=1;o1?r-1:0),o=1;o1?r-1:0),o=1;o{"use strict";var n=r(4155);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){for(var r=0;re.length)&&(r=e.length),e.substring(r-t.length,r)===t}var y="",m="",b="",v="",w={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},E=10;function A(e){var t=Object.keys(e),r=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){r[t]=e[t]})),Object.defineProperty(r,"message",{value:e.message}),r}function _(e){return h(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var T=function(e){function t(e){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==p(e)||null===e)throw new d("options","Object",e);var o=e.message,i=e.operator,u=e.stackStartFn,c=e.actual,l=e.expected,h=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=o)r=a(this,f(t).call(this,String(o)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(y="",m="",v="",b=""):(y="",m="",v="",b="")),"object"===p(c)&&null!==c&&"object"===p(l)&&null!==l&&"stack"in c&&c instanceof Error&&"stack"in l&&l instanceof Error&&(c=A(c),l=A(l)),"deepStrictEqual"===i||"strictEqual"===i)r=a(this,f(t).call(this,function(e,t,r){var o="",i="",a=0,s="",u=!1,c=_(e),l=c.split("\n"),f=_(t).split("\n"),h=0,d="";if("strictEqual"===r&&"object"===p(e)&&"object"===p(t)&&null!==e&&null!==t&&(r="strictEqualObject"),1===l.length&&1===f.length&&l[0]!==f[0]){var A=l[0].length+f[0].length;if(A<=E){if(!("object"===p(e)&&null!==e||"object"===p(t)&&null!==t||0===e&&0===t))return"".concat(w[r],"\n\n")+"".concat(l[0]," !== ").concat(f[0],"\n")}else if("strictEqualObject"!==r&&A<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;l[0][h]===f[0][h];)h++;h>2&&(d="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var r=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,r-e.length)}(" ",h),"^"),h=0)}}for(var T=l[l.length-1],S=f[f.length-1];T===S&&(h++<2?s="\n ".concat(T).concat(s):o=T,l.pop(),f.pop(),0!==l.length&&0!==f.length);)T=l[l.length-1],S=f[f.length-1];var x=Math.max(l.length,f.length);if(0===x){var D=c.split("\n");if(D.length>30)for(D[26]="".concat(y,"...").concat(v);D.length>27;)D.pop();return"".concat(w.notIdentical,"\n\n").concat(D.join("\n"),"\n")}h>3&&(s="\n".concat(y,"...").concat(v).concat(s),u=!0),""!==o&&(s="\n ".concat(o).concat(s),o="");var R=0,N=w[r]+"\n".concat(m,"+ actual").concat(v," ").concat(b,"- expected").concat(v),O=" ".concat(y,"...").concat(v," Lines skipped");for(h=0;h1&&h>2&&(L>4?(i+="\n".concat(y,"...").concat(v),u=!0):L>3&&(i+="\n ".concat(f[h-2]),R++),i+="\n ".concat(f[h-1]),R++),a=h,o+="\n".concat(b,"-").concat(v," ").concat(f[h]),R++;else if(f.length1&&h>2&&(L>4?(i+="\n".concat(y,"...").concat(v),u=!0):L>3&&(i+="\n ".concat(l[h-2]),R++),i+="\n ".concat(l[h-1]),R++),a=h,i+="\n".concat(m,"+").concat(v," ").concat(l[h]),R++;else{var k=f[h],P=l[h],C=P!==k&&(!g(P,",")||P.slice(0,-1)!==k);C&&g(k,",")&&k.slice(0,-1)===P&&(C=!1,P+=","),C?(L>1&&h>2&&(L>4?(i+="\n".concat(y,"...").concat(v),u=!0):L>3&&(i+="\n ".concat(l[h-2]),R++),i+="\n ".concat(l[h-1]),R++),a=h,i+="\n".concat(m,"+").concat(v," ").concat(P),o+="\n".concat(b,"-").concat(v," ").concat(k),R+=2):(i+=o,o="",1!==L&&0!==h||(i+="\n ".concat(P),R++))}if(R>20&&h30)for(S[26]="".concat(y,"...").concat(v);S.length>27;)S.pop();r=1===S.length?a(this,f(t).call(this,"".concat(T," ").concat(S[0]))):a(this,f(t).call(this,"".concat(T,"\n\n").concat(S.join("\n"),"\n")))}else{var x=_(c),D="",R=w[i];"notDeepEqual"===i||"notEqual"===i?(x="".concat(w[i],"\n\n").concat(x)).length>1024&&(x="".concat(x.slice(0,1021),"...")):(D="".concat(_(l)),x.length>512&&(x="".concat(x.slice(0,509),"...")),D.length>512&&(D="".concat(D.slice(0,509),"...")),"deepEqual"===i||"equal"===i?x="".concat(R,"\n\n").concat(x,"\n\nshould equal\n\n"):D=" ".concat(i," ").concat(D)),r=a(this,f(t).call(this,"".concat(x).concat(D)))}return Error.stackTraceLimit=h,r.generatedMessage=!o,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=c,r.expected=l,r.operator=i,Error.captureStackTrace&&Error.captureStackTrace(s(r),u),r.stack,r.name="AssertionError",a(r)}var r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(t,e),r=t,u=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:h.custom,value:function(e,t){return h(this,function(e){for(var t=1;t{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}function i(e,t){return i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},i(e,t)}var a,s,u={};function c(e,t,r){r||(r=Error);var a=function(r){function a(r,i,s){var u;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),u=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,o(a).call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,i,s))),u.code=e,u}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}(a,r),a}(r);u[e]=a}function l(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}c("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),c("ERR_INVALID_ARG_TYPE",(function(e,t,o){var i,s,u,c,f;if(void 0===a&&(a=r(9282)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(0,s.length)===s)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(l(t,"type"));else{var p=("number"!=typeof f&&(f=0),f+".".length>(c=e).length||-1===c.indexOf(".",f)?"argument":"property");u='The "'.concat(e,'" ').concat(p," ").concat(i," ").concat(l(t,"type"))}return u+". Received type ".concat(n(o))}),TypeError),c("ERR_INVALID_ARG_VALUE",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(9539));var o=s.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(n,". Received ").concat(o)}),TypeError,RangeError),c("ERR_INVALID_RETURN_VALUE",(function(e,t,r){var o;return o=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),c("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),n=0;n0,"At least one arg needs to be specified");var o="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,i-1).join(", "),o+=", and ".concat(t[i-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=u},9158:(e,t,r)=>{"use strict";function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw i}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var i=void 0!==/a/g.flags,a=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},s=function(e){var t=[];return e.forEach((function(e,r){return t.push([r,e])})),t},u=Object.is?Object.is:r(609),c=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},l=Number.isNaN?Number.isNaN:r(360);function f(e){return e.call.bind(e)}var p=f(Object.prototype.hasOwnProperty),h=f(Object.prototype.propertyIsEnumerable),d=f(Object.prototype.toString),g=r(9539).types,y=g.isAnyArrayBuffer,m=g.isArrayBufferView,b=g.isDate,v=g.isMap,w=g.isRegExp,E=g.isSet,A=g.isNativeError,_=g.isBoxedPrimitive,T=g.isNumberObject,S=g.isStringObject,x=g.isBooleanObject,D=g.isBigIntObject,R=g.isSymbolObject,N=g.isFloat32Array,O=g.isFloat64Array;function L(e){if(0===e.length||e.length>10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function k(e){return Object.keys(e).filter(L).concat(c(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function P(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);o{"use strict";var n=r(210),o=r(5559),i=o(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&i(e,".prototype.")>-1?o(r):r}},5559:(e,t,r)=>{"use strict";var n=r(8612),o=r(210),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||n.call(a,i),u=o("%Object.getOwnPropertyDescriptor%",!0),c=o("%Object.defineProperty%",!0),l=o("%Math.max%");if(c)try{c({},"a",{value:1})}catch(e){c=null}e.exports=function(e){var t=s(n,a,arguments);return u&&c&&u(t,"length").configurable&&c(t,"length",{value:1+l(0,e.length-(arguments.length-1))}),t};var f=function(){return s(n,i,arguments)};c?c(e.exports,"apply",{value:f}):e.exports.apply=f},4289:(e,t,r)=>{"use strict";var n=r(2215),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,u=r(1044)(),c=s&&u,l=function(e,t,r,n){if(t in e)if(!0===n){if(e[t]===r)return}else if("function"!=typeof(o=n)||"[object Function]"!==i.call(o)||!n())return;var o;c?s(e,t,{configurable:!0,enumerable:!1,value:r,writable:!0}):e[t]=r},f=function(e,t){var r=arguments.length>2?arguments[2]:{},i=n(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var r=Object(e),n=1;n{"use strict";var n=r(5320),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty,a=function(e,t,r){for(var n=0,o=e.length;n=3&&(i=r),"[object Array]"===o.call(e)?a(e,t,i):"string"==typeof e?s(e,t,i):u(e,t,i)}},7648:e=>{"use strict";var t="Function.prototype.bind called on incompatible ",r=Array.prototype.slice,n=Object.prototype.toString,o="[object Function]";e.exports=function(e){var i=this;if("function"!=typeof i||n.call(i)!==o)throw new TypeError(t+i);for(var a,s=r.call(arguments,1),u=Math.max(0,i.length-s.length),c=[],l=0;l{"use strict";var n=r(7648);e.exports=Function.prototype.bind||n},210:(e,t,r)=>{"use strict";var n,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(e){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(e){u=null}var c=function(){throw new a},l=u?function(){try{return c}catch(e){try{return u(arguments,"callee").get}catch(e){return c}}}():c,f=r(1405)(),p=Object.getPrototypeOf||function(e){return e.__proto__},h={},d="undefined"==typeof Uint8Array?n:p(Uint8Array),g={"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":f?p([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f?p(p([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&f?p((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&f?p((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f?p(""[Symbol.iterator]()):n,"%Symbol%":f?Symbol:n,"%SyntaxError%":o,"%ThrowTypeError%":l,"%TypedArray%":d,"%TypeError%":a,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet};try{null.error}catch(e){var y=p(p(e));g["%Error.prototype%"]=y}var m=function e(t){var r;if("%AsyncFunction%"===t)r=s("async function () {}");else if("%GeneratorFunction%"===t)r=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)r=s("async function* () {}");else if("%AsyncGenerator%"===t){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&(r=p(o.prototype))}return g[t]=r,r},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},v=r(8612),w=r(7642),E=v.call(Function.call,Array.prototype.concat),A=v.call(Function.apply,Array.prototype.splice),_=v.call(Function.call,String.prototype.replace),T=v.call(Function.call,String.prototype.slice),S=v.call(Function.call,RegExp.prototype.exec),x=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,D=/\\(\\)?/g,R=function(e){var t=T(e,0,1),r=T(e,-1);if("%"===t&&"%"!==r)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var n=[];return _(e,x,(function(e,t,r,o){n[n.length]=r?_(o,D,"$1"):t||e})),n},N=function(e,t){var r,n=e;if(w(b,n)&&(n="%"+(r=b[n])[0]+"%"),w(g,n)){var i=g[n];if(i===h&&(i=m(n)),void 0===i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===S(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=R(e),n=r.length>0?r[0]:"",i=N("%"+n+"%",t),s=i.name,c=i.value,l=!1,f=i.alias;f&&(n=f[0],A(r,E([0,1],f)));for(var p=1,h=!0;p=r.length){var b=u(c,d);c=(h=!!b)&&"get"in b&&!("originalValue"in b.get)?b.get:c[d]}else h=w(c,d),c=c[d];h&&!l&&(g[s]=c)}}return c}},7296:(e,t,r)=>{"use strict";var n=r(210)("%Object.getOwnPropertyDescriptor%",!0);if(n)try{n([],"length")}catch(e){n=null}e.exports=n},1044:(e,t,r)=>{"use strict";var n=r(210)("%Object.defineProperty%",!0),o=function(){if(n)try{return n({},"a",{value:1}),!0}catch(e){return!1}return!1};o.hasArrayLengthDefineBug=function(){if(!o())return null;try{return 1!==n([],"length",{value:1}).length}catch(e){return!0}},e.exports=o},1405:(e,t,r)=>{"use strict";var n="undefined"!=typeof Symbol&&Symbol,o=r(5419);e.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},5419:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},6410:(e,t,r)=>{"use strict";var n=r(5419);e.exports=function(){return n()&&!!Symbol.toStringTag}},7642:(e,t,r)=>{"use strict";var n=r(8612);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},5717:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},2584:(e,t,r)=>{"use strict";var n=r(6410)(),o=r(1924)("Object.prototype.toString"),i=function(e){return!(n&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},a=function(e){return!!i(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"[object Function]"===o(e.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,e.exports=s?i:a},5320:e=>{"use strict";var t,r,n=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o((function(){throw 42}),null,t)}catch(e){e!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(e){try{var t=n.call(e);return i.test(t)}catch(e){return!1}},s=function(e){try{return!a(e)&&(n.call(e),!0)}catch(e){return!1}},u=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,l=!(0 in[,]),f=function(){return!1};if("object"==typeof document){var p=document.all;u.call(p)===u.call(document.all)&&(f=function(e){if((l||!e)&&(void 0===e||"object"==typeof e))try{var t=u.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=o?function(e){if(f(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{o(e,null,t)}catch(e){if(e!==r)return!1}return!a(e)&&s(e)}:function(e){if(f(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(c)return s(e);if(a(e))return!1;var t=u.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&s(e)}},8662:(e,t,r)=>{"use strict";var n,o=Object.prototype.toString,i=Function.prototype.toString,a=/^\s*(?:function)?\*/,s=r(6410)(),u=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(a.test(i.call(e)))return!0;if(!s)return"[object GeneratorFunction]"===o.call(e);if(!u)return!1;if(void 0===n){var t=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}}();n=!!t&&u(t)}return u(e)===n}},8611:e=>{"use strict";e.exports=function(e){return e!=e}},360:(e,t,r)=>{"use strict";var n=r(5559),o=r(4289),i=r(8611),a=r(9415),s=r(3194),u=n(a(),Number);o(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},9415:(e,t,r)=>{"use strict";var n=r(8611);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n}},3194:(e,t,r)=>{"use strict";var n=r(4289),o=r(9415);e.exports=function(){var e=o();return n(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},5692:(e,t,r)=>{"use strict";var n=r(4029),o=r(3083),i=r(1924),a=i("Object.prototype.toString"),s=r(6410)(),u=r(7296),c="undefined"==typeof globalThis?r.g:globalThis,l=o(),f=i("Array.prototype.indexOf",!0)||function(e,t){for(var r=0;r-1}return!!u&&function(e){var t=!1;return n(h,(function(r,n){if(!t)try{t=r.call(e)===n}catch(e){}})),t}(e)}},3564:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=3564,e.exports=t},4244:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,r){return 0===e&&0===r?1/e==1/r:e===r||!(!t(e)||!t(r))}},609:(e,t,r)=>{"use strict";var n=r(4289),o=r(5559),i=r(4244),a=r(5624),s=r(2281),u=o(a(),Object);n(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},5624:(e,t,r)=>{"use strict";var n=r(4244);e.exports=function(){return"function"==typeof Object.is?Object.is:n}},2281:(e,t,r)=>{"use strict";var n=r(5624),o=r(4289);e.exports=function(){var e=n();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8987:(e,t,r)=>{"use strict";var n;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=r(1414),s=Object.prototype.propertyIsEnumerable,u=!s.call({toString:null},"toString"),c=s.call((function(){}),"prototype"),l=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(e){var t=e.constructor;return t&&t.prototype===e},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},h=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!p["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{f(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();n=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===i.call(e),n=a(e),s=t&&"[object String]"===i.call(e),p=[];if(!t&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var d=c&&r;if(s&&e.length>0&&!o.call(e,0))for(var g=0;g0)for(var y=0;y{"use strict";var n=Array.prototype.slice,o=r(1414),i=Object.keys,a=i?function(e){return i(e)}:r(8987),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(n.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),n}},4155:e=>{var t,r,n=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var s,u=[],c=!1,l=-1;function f(){c&&s&&(c=!1,s.length?u=s.concat(u):l=-1,u.length&&p())}function p(){if(!c){var e=a(f);c=!0;for(var t=u.length;t;){for(s=u,u=[];++l1)for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(9282),o=r(9496);suite("Web Extension Test Suite",(()=>{o.window.showInformationMessage("Start all tests."),test("Sample test",(()=>{n.strictEqual(-1,[1,2,3].indexOf(5)),n.strictEqual(-1,[1,2,3].indexOf(0))}))}))},384:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},5955:(e,t,r)=>{"use strict";var n=r(2584),o=r(8662),i=r(6430),a=r(5692);function s(e){return e.call.bind(e)}var u="undefined"!=typeof BigInt,c="undefined"!=typeof Symbol,l=s(Object.prototype.toString),f=s(Number.prototype.valueOf),p=s(String.prototype.valueOf),h=s(Boolean.prototype.valueOf);if(u)var d=s(BigInt.prototype.valueOf);if(c)var g=s(Symbol.prototype.valueOf);function y(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function m(e){return"[object Map]"===l(e)}function b(e){return"[object Set]"===l(e)}function v(e){return"[object WeakMap]"===l(e)}function w(e){return"[object WeakSet]"===l(e)}function E(e){return"[object ArrayBuffer]"===l(e)}function A(e){return"undefined"!=typeof ArrayBuffer&&(E.working?E(e):e instanceof ArrayBuffer)}function _(e){return"[object DataView]"===l(e)}function T(e){return"undefined"!=typeof DataView&&(_.working?_(e):e instanceof DataView)}t.isArgumentsObject=n,t.isGeneratorFunction=o,t.isTypedArray=a,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):a(e)||T(e)},t.isUint8Array=function(e){return"Uint8Array"===i(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===i(e)},t.isUint16Array=function(e){return"Uint16Array"===i(e)},t.isUint32Array=function(e){return"Uint32Array"===i(e)},t.isInt8Array=function(e){return"Int8Array"===i(e)},t.isInt16Array=function(e){return"Int16Array"===i(e)},t.isInt32Array=function(e){return"Int32Array"===i(e)},t.isFloat32Array=function(e){return"Float32Array"===i(e)},t.isFloat64Array=function(e){return"Float64Array"===i(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===i(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===i(e)},m.working="undefined"!=typeof Map&&m(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(m.working?m(e):e instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(b.working?b(e):e instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(v.working?v(e):e instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),t.isWeakSet=function(e){return w(e)},E.working="undefined"!=typeof ArrayBuffer&&E(new ArrayBuffer),t.isArrayBuffer=A,_.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&_(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=T;var S="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function x(e){return"[object SharedArrayBuffer]"===l(e)}function D(e){return void 0!==S&&(void 0===x.working&&(x.working=x(new S)),x.working?x(e):e instanceof S)}function R(e){return y(e,f)}function N(e){return y(e,p)}function O(e){return y(e,h)}function L(e){return u&&y(e,d)}function k(e){return c&&y(e,g)}t.isSharedArrayBuffer=D,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===l(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===l(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===l(e)},t.isGeneratorObject=function(e){return"[object Generator]"===l(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===l(e)},t.isNumberObject=R,t.isStringObject=N,t.isBooleanObject=O,t.isBigIntObject=L,t.isSymbolObject=k,t.isBoxedPrimitive=function(e){return R(e)||N(e)||O(e)||L(e)||k(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(A(e)||D(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},9539:(e,t,r)=>{var n=r(4155),o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),y(r)?n.showHidden=r:r&&t._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),p(n,e,n.depth)}function l(e,t){var r=c.styles[t];return r?"["+c.colors[r][0]+"m"+e+"["+c.colors[r][1]+"m":e}function f(e,t){return e}function p(e,r,n){if(e.customInspect&&r&&S(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,e);return v(o)||(o=p(e,o,n)),o}var i=function(e,t){if(w(t))return e.stylize("undefined","undefined");if(v(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return b(t)?e.stylize(""+t,"number"):y(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,r);if(i)return i;var a=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),T(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return h(r);if(0===a.length){if(S(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(E(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return e.stylize(Date.prototype.toString.call(r),"date");if(T(r))return h(r)}var c,l="",f=!1,A=["{","}"];return g(r)&&(f=!0,A=["[","]"]),S(r)&&(l=" [Function"+(r.name?": "+r.name:"")+"]"),E(r)&&(l=" "+RegExp.prototype.toString.call(r)),_(r)&&(l=" "+Date.prototype.toUTCString.call(r)),T(r)&&(l=" "+h(r)),0!==a.length||f&&0!=r.length?n<0?E(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),c=f?function(e,t,r,n,o){for(var i=[],a=0,s=t.length;a60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(c,l,A)):A[0]+l+A[1]}function h(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,r,n,o,i){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),N(n,o)||(a="["+o+"]"),s||(e.seen.indexOf(u.value)<0?(s=m(r)?p(e,u.value,null):p(e,u.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),w(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function g(e){return Array.isArray(e)}function y(e){return"boolean"==typeof e}function m(e){return null===e}function b(e){return"number"==typeof e}function v(e){return"string"==typeof e}function w(e){return void 0===e}function E(e){return A(e)&&"[object RegExp]"===x(e)}function A(e){return"object"==typeof e&&null!==e}function _(e){return A(e)&&"[object Date]"===x(e)}function T(e){return A(e)&&("[object Error]"===x(e)||e instanceof Error)}function S(e){return"function"==typeof e}function x(e){return Object.prototype.toString.call(e)}function D(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(s.test(e)){var r=n.pid;a[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else a[e]=function(){};return a[e]},t.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=r(5955),t.isArray=g,t.isBoolean=y,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=b,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=w,t.isRegExp=E,t.types.isRegExp=E,t.isObject=A,t.isDate=_,t.types.isDate=_,t.isError=T,t.types.isNativeError=T,t.isFunction=S,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(384);var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,r;console.log("%s - %s",(r=[D((e=new Date).getHours()),D(e.getMinutes()),D(e.getSeconds())].join(":"),[e.getDate(),R[e.getMonth()],r].join(" ")),t.format.apply(t,arguments))},t.inherits=r(5717),t._extend=function(e,t){if(!t||!A(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function L(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),o=[],i=0;i{"use strict";var n=r(4029),o=r(3083),i=r(1924),a=r(7296),s=i("Object.prototype.toString"),u=r(6410)(),c="undefined"==typeof globalThis?r.g:globalThis,l=o(),f=i("String.prototype.slice"),p={},h=Object.getPrototypeOf;u&&a&&h&&n(l,(function(e){if("function"==typeof c[e]){var t=new c[e];if(Symbol.toStringTag in t){var r=h(t),n=a(r,Symbol.toStringTag);if(!n){var o=h(r);n=a(o,Symbol.toStringTag)}p[e]=n.get}}}));var d=r(5692);e.exports=function(e){return!!d(e)&&(u&&Symbol.toStringTag in e?function(e){var t=!1;return n(p,(function(r,n){if(!t)try{var o=r.call(e);o===n&&(t=o)}catch(e){}})),t}(e):f(s(e),8,-1))}},7795:(e,t,r)=>{var n={"./extension.test":6993};function o(e){var t=i(e);return r(t)}function i(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}o.keys=function(){return Object.keys(n)},o.resolve=i,e.exports=o,o.id=7795},9496:e=>{"use strict";e.exports=require("vscode")},3083:(e,t,r)=>{"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],o="undefined"==typeof globalThis?r.g:globalThis;e.exports=function(){for(var e=[],t=0;t1)for(var r=1;r0&&a.length>o){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=i[t]=r,++e._eventsCount;return e}function q(e,t,r){var n=!1;function o(){e.removeListener(t,o),n||(n=!0,r.apply(e,arguments))}return o.listener=r,o}function I(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function j(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}L.prototype=Object.create(null),k.EventEmitter=k,k.usingDomains=!1,k.prototype.domain=void 0,k.prototype._events=void 0,k.prototype._maxListeners=void 0,k.defaultMaxListeners=10,k.init=function(){this.domain=null,k.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new L,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},k.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},k.prototype.getMaxListeners=function(){return P(this)},k.prototype.emit=function(e){var t,r,n,o,i,a,s,u="error"===e;if(a=this._events)u=u&&null==a.error;else if(!u)return!1;if(s=this.domain,u){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var l="function"==typeof r;switch(n=arguments.length){case 1:!function(e,t,r){if(t)e.call(r);else for(var n=e.length,o=j(e,n),i=0;i0;)if(r[i]===t||r[i].listener&&r[i].listener===t){a=r[i].listener,o=i;break}if(o<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new L,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,o=e.length;n0?Reflect.ownKeys(this._events):[]};var U=Object.freeze({__proto__:null,default:k,EventEmitter:k}),F=[],B=[],M="undefined"!=typeof Uint8Array?Uint8Array:Array,V=!1;function G(){V=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t>18&63]+F[a>>12&63]+F[a>>6&63]+F[63&a]);var a;return o.join("")}function z(e){var t;V||G();for(var r=e.length,n=r%3,o="",i=[],a=16383,s=0,u=r-n;su?u:s+a));return 1===n?(t=e[r-1],o+=F[t>>2],o+=F[t<<4&63],o+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],o+=F[t>>10],o+=F[t>>4&63],o+=F[t<<2&63],o+="="),i.push(o),i.join("")}function Y(e,t,r,n,o){var i,a,s=8*o-n-1,u=(1<>1,l=-7,f=r?o-1:0,p=r?-1:1,h=e[t+f];for(f+=p,i=h&(1<<-l)-1,h>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=p,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=n;l>0;a=256*a+e[t+f],f+=p,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),i-=c}return(h?-1:1)*a*Math.pow(2,i-n)}function $(e,t,r,n,o,i){var a,s,u,c=8*i-o-1,l=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,d=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+f>=1?p/u:p*Math.pow(2,1-f))*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[r+h]=255&s,h+=d,s/=256,o-=8);for(a=a<0;e[r+h]=255&a,h+=d,a/=256,c-=8);e[r+h-d]|=128*g}var W={}.toString,J=Array.isArray||function(e){return"[object Array]"==W.call(e)};function Z(){return Q.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function K(e,t){if(Z()=Z())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Z().toString(16)+" bytes");return 0|e}function oe(e){return!(null==e||!e._isBuffer)}function ie(e,t){if(oe(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Le(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ke(e).length;default:if(n)return Le(e).length;t=(""+t).toLowerCase(),n=!0}}function ae(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return Ee(this,t,r);case"utf8":case"utf-8":return me(this,t,r);case"ascii":return ve(this,t,r);case"latin1":case"binary":return we(this,t,r);case"base64":return ye(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ae(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function se(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function ue(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=Q.from(t,n)),oe(t))return 0===t.length?-1:ce(e,t,r,n,o);if("number"==typeof t)return t&=255,Q.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):ce(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function ce(e,t,r,n,o){var i,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=r;is&&(r=s-u),i=r;i>=0;i--){for(var f=!0,p=0;po&&(n=o):n=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function ye(e,t,r){return 0===t&&r===e.length?z(e):z(e.slice(t,r))}function me(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(i=e[o+1]))&&(u=(31&c)<<6|63&i)>127&&(l=u);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=f}return function(e){var t=e.length;if(t<=be)return String.fromCharCode.apply(String,e);for(var r="",n=0;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},Q.prototype.compare=function(e,t,r,n,o){if(!oe(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(n,o),c=e.slice(t,r),l=0;lo)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return le(this,e,t,r);case"utf8":case"utf-8":return fe(this,e,t,r);case"ascii":return pe(this,e,t,r);case"latin1":case"binary":return he(this,e,t,r);case"base64":return de(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ge(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},Q.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var be=4096;function ve(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;oo)&&(r=o);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function Te(e,t,r,n,o,i){if(!oe(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function Se(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-r,2);o>>8*(n?o:1-o)}function xe(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-r,4);o>>8*(n?o:3-o)&255}function De(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Re(e,t,r,n,o){return o||De(e,0,r,4),$(e,t,r,n,23,4),r+4}function Ne(e,t,r,n,o){return o||De(e,0,r,8),$(e,t,r,n,52,8),r+8}Q.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(o*=256);)n+=this[e+--t]*o;return n},Q.prototype.readUInt8=function(e,t){return t||_e(e,1,this.length),this[e]},Q.prototype.readUInt16LE=function(e,t){return t||_e(e,2,this.length),this[e]|this[e+1]<<8},Q.prototype.readUInt16BE=function(e,t){return t||_e(e,2,this.length),this[e]<<8|this[e+1]},Q.prototype.readUInt32LE=function(e,t){return t||_e(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Q.prototype.readUInt32BE=function(e,t){return t||_e(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Q.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||_e(e,t,this.length);for(var n=this[e],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*t)),n},Q.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||_e(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},Q.prototype.readInt8=function(e,t){return t||_e(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Q.prototype.readInt16LE=function(e,t){t||_e(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},Q.prototype.readInt16BE=function(e,t){t||_e(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},Q.prototype.readInt32LE=function(e,t){return t||_e(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Q.prototype.readInt32BE=function(e,t){return t||_e(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Q.prototype.readFloatLE=function(e,t){return t||_e(e,4,this.length),Y(this,e,!0,23,4)},Q.prototype.readFloatBE=function(e,t){return t||_e(e,4,this.length),Y(this,e,!1,23,4)},Q.prototype.readDoubleLE=function(e,t){return t||_e(e,8,this.length),Y(this,e,!0,52,8)},Q.prototype.readDoubleBE=function(e,t){return t||_e(e,8,this.length),Y(this,e,!1,52,8)},Q.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||Te(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+r},Q.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,1,255,0),Q.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Q.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,2,65535,0),Q.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Se(this,e,t,!0),t+2},Q.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,2,65535,0),Q.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Se(this,e,t,!1),t+2},Q.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,4,4294967295,0),Q.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):xe(this,e,t,!0),t+4},Q.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,4,4294967295,0),Q.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):xe(this,e,t,!1),t+4},Q.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);Te(this,e,t,r,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},Q.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);Te(this,e,t,r,o-1,-o)}var i=r-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+r},Q.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,1,127,-128),Q.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Q.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,2,32767,-32768),Q.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Se(this,e,t,!0),t+2},Q.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,2,32767,-32768),Q.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Se(this,e,t,!1),t+2},Q.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,4,2147483647,-2147483648),Q.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):xe(this,e,t,!0),t+4},Q.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||Te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Q.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):xe(this,e,t,!1),t+4},Q.prototype.writeFloatLE=function(e,t,r){return Re(this,e,t,!0,r)},Q.prototype.writeFloatBE=function(e,t,r){return Re(this,e,t,!1,r)},Q.prototype.writeDoubleLE=function(e,t,r){return Ne(this,e,t,!0,r)},Q.prototype.writeDoubleBE=function(e,t,r){return Ne(this,e,t,!1,r)},Q.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else if(i<1e3||!Q.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function ke(e){return function(e){var t,r,n,o,i,a;V||G();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===e[s-2]?2:"="===e[s-1]?1:0,a=new M(3*s/4-i),n=i>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,a[u++]=o>>8&255,a[u++]=255&o;return 2===i?(o=B[e.charCodeAt(t)]<<2|B[e.charCodeAt(t+1)]>>4,a[u++]=255&o):1===i&&(o=B[e.charCodeAt(t)]<<10|B[e.charCodeAt(t+1)]<<4|B[e.charCodeAt(t+2)]>>2,a[u++]=o>>8&255,a[u++]=255&o),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Oe,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Pe(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function Ce(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function qe(){throw new Error("setTimeout has not been defined")}function Ie(){throw new Error("clearTimeout has not been defined")}var je=qe,Ue=Ie;function Fe(e){if(je===setTimeout)return setTimeout(e,0);if((je===qe||!je)&&setTimeout)return je=setTimeout,setTimeout(e,0);try{return je(e,0)}catch(t){try{return je.call(null,e,0)}catch(t){return je.call(this,e,0)}}}"function"==typeof e.setTimeout&&(je=setTimeout),"function"==typeof e.clearTimeout&&(Ue=clearTimeout);var Be,Me=[],Ve=!1,Ge=-1;function He(){Ve&&Be&&(Ve=!1,Be.length?Me=Be.concat(Me):Ge=-1,Me.length&&ze())}function ze(){if(!Ve){var e=Fe(He);Ve=!0;for(var t=Me.length;t;){for(Be=Me,Me=[];++Ge1)for(var r=1;r=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),wt(t)?r.showHidden=t:t&&Ut(r,t),xt(r.showHidden)&&(r.showHidden=!1),xt(r.depth)&&(r.depth=2),xt(r.colors)&&(r.colors=!1),xt(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=dt),yt(r,e,r.depth)}function dt(e,t){var r=ht.styles[t];return r?"["+ht.colors[r][0]+"m"+e+"["+ht.colors[r][1]+"m":e}function gt(e,t){return e}function yt(e,t,r){if(e.customInspect&&t&&Lt(t.inspect)&&t.inspect!==ht&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return Tt(n)||(n=yt(e,n,r)),n}var o=function(e,t){if(xt(t))return e.stylize("undefined","undefined");if(Tt(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return _t(t)?e.stylize(""+t,"number"):wt(t)?e.stylize(""+t,"boolean"):Et(t)?e.stylize("null","null"):void 0}(e,t);if(o)return o;var i=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),Ot(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return mt(t);if(0===i.length){if(Lt(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Dt(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Nt(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Ot(t))return mt(t)}var u,c="",l=!1,f=["{","}"];return vt(t)&&(l=!0,f=["[","]"]),Lt(t)&&(c=" [Function"+(t.name?": "+t.name:"")+"]"),Dt(t)&&(c=" "+RegExp.prototype.toString.call(t)),Nt(t)&&(c=" "+Date.prototype.toUTCString.call(t)),Ot(t)&&(c=" "+mt(t)),0!==i.length||l&&0!=t.length?r<0?Dt(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),u=l?function(e,t,r,n,o){for(var i=[],a=0,s=t.length;a60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(u,c,f)):f[0]+c+f[1]}function mt(e){return"["+Error.prototype.toString.call(e)+"]"}function bt(e,t,r,n,o,i){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),Ft(n,o)||(a="["+o+"]"),s||(e.seen.indexOf(u.value)<0?(s=Et(r)?yt(e,u.value,null):yt(e,u.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),xt(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function vt(e){return Array.isArray(e)}function wt(e){return"boolean"==typeof e}function Et(e){return null===e}function At(e){return null==e}function _t(e){return"number"==typeof e}function Tt(e){return"string"==typeof e}function St(e){return"symbol"==typeof e}function xt(e){return void 0===e}function Dt(e){return Rt(e)&&"[object RegExp]"===Ct(e)}function Rt(e){return"object"==typeof e&&null!==e}function Nt(e){return Rt(e)&&"[object Date]"===Ct(e)}function Ot(e){return Rt(e)&&("[object Error]"===Ct(e)||e instanceof Error)}function Lt(e){return"function"==typeof e}function kt(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function Pt(e){return Q.isBuffer(e)}function Ct(e){return Object.prototype.toString.call(e)}function qt(e){return e<10?"0"+e.toString(10):e.toString(10)}ht.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ht.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var It=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function jt(){console.log("%s - %s",function(){var e=new Date,t=[qt(e.getHours()),qt(e.getMinutes()),qt(e.getSeconds())].join(":");return[e.getDate(),It[e.getMonth()],t].join(" ")}(),ut.apply(null,arguments))}function Ut(e,t){if(!t||!Rt(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function Ft(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Bt={inherits:at,_extend:Ut,log:jt,isBuffer:Pt,isPrimitive:kt,isFunction:Lt,isError:Ot,isDate:Nt,isObject:Rt,isRegExp:Dt,isUndefined:xt,isSymbol:St,isString:Tt,isNumber:_t,isNullOrUndefined:At,isNull:Et,isBoolean:wt,isArray:vt,inspect:ht,deprecate:ct,format:ut,debuglog:pt},Mt=Object.freeze({__proto__:null,format:ut,deprecate:ct,debuglog:pt,inspect:ht,isArray:vt,isBoolean:wt,isNull:Et,isNullOrUndefined:At,isNumber:_t,isString:Tt,isSymbol:St,isUndefined:xt,isRegExp:Dt,isObject:Rt,isDate:Nt,isError:Ot,isFunction:Lt,isPrimitive:kt,isBuffer:Pt,log:jt,inherits:at,_extend:Ut,default:Bt});function Vt(){this.head=null,this.tail=null,this.length=0}Vt.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Vt.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},Vt.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},Vt.prototype.clear=function(){this.head=this.tail=null,this.length=0},Vt.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},Vt.prototype.concat=function(e){if(0===this.length)return Q.alloc(0);if(1===this.length)return this.head.data;for(var t=Q.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Gt=Q.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Ht(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Gt(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Yt;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=$t;break;default:return void(this.write=zt)}this.charBuffer=new Q(6),this.charReceived=0,this.charLength=0}function zt(e){return e.toString(this.encoding)}function Yt(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function $t(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Ht.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&n<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n,o=e.length;if(this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,o),o-=this.charReceived),o=(t+=e.toString(this.encoding,0,o)).length-1,(n=t.charCodeAt(o))>=55296&&n<=56319){var i=this.surrogateSize;return this.charLength+=i,this.charReceived+=i,this.charBuffer.copy(this.charBuffer,i,0,i),e.copy(this.charBuffer,0,0,i),t.substring(0,o)}return t},Ht.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},Ht.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,o=this.encoding;t+=n.slice(0,r).toString(o)}return t},Zt.ReadableState=Jt;var Wt=pt("stream");function Jt(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Sr&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new Vt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Ht(e.encoding),this.encoding=e.encoding)}function Zt(e){if(!(this instanceof Zt))return new Zt(e);this._readableState=new Jt(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),k.call(this)}function Kt(e,t,r,n,o){var i=function(e,t){var r=null;return Q.isBuffer(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}(t,r);if(i)e.emit("error",i);else if(null===r)t.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,er(e)}}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!o){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&o){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var u;!t.decoder||o||n||(r=t.decoder.write(r),u=!t.objectMode&&0===r.length),o||(t.reading=!1),u||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,o?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&er(e))),function(e,t){t.readingMore||(t.readingMore=!0,Ye(rr,e,t))}(e,t)}else o||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=Qt?e=Qt:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function er(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(Wt("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?Ye(tr,e):tr(e))}function tr(e){Wt("emit readable"),e.emit("readable"),ir(e)}function rr(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;return ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0==(e-=a)){a===i.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++n}return t.length-=n,o}(e,t):function(e,t){var r=Q.allocUnsafe(e),n=t.head,o=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(i.copy(r,r.length-e,0,a),0==(e-=a)){a===i.length?(++o,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++o}return t.length-=o,r}(e,t),n}(e,t.buffer,t.decoder),r);var r}function sr(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,Ye(ur,t,e))}function ur(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function cr(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return Wt("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?sr(this):er(this),null;if(0===(e=Xt(e,t))&&t.ended)return 0===t.length&&sr(this),null;var n,o=t.needReadable;return Wt("need readable",o),(0===t.length||t.length-e0?ar(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&sr(this)),null!==n&&this.emit("data",n),n},Zt.prototype._read=function(e){this.emit("error",new Error("not implemented"))},Zt.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,Wt("pipe count=%d opts=%j",n.pipesCount,t);var o=t&&!1===t.end?c:a;function i(e){Wt("onunpipe"),e===r&&c()}function a(){Wt("onend"),e.end()}n.endEmitted?Ye(o):r.once("end",o),e.on("unpipe",i);var s=function(e){return function(){var t=e._readableState;Wt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,ir(e))}}(r);e.on("drain",s);var u=!1;function c(){Wt("cleanup"),e.removeListener("close",h),e.removeListener("finish",d),e.removeListener("drain",s),e.removeListener("error",p),e.removeListener("unpipe",i),r.removeListener("end",a),r.removeListener("end",c),r.removeListener("data",f),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var l=!1;function f(t){Wt("ondata"),l=!1,!1!==e.write(t)||l||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==cr(n.pipes,e))&&!u&&(Wt("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,l=!0),r.pause())}function p(t){var r;Wt("onerror",t),g(),e.removeListener("error",p),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function h(){e.removeListener("finish",d),g()}function d(){Wt("onfinish"),e.removeListener("close",h),g()}function g(){Wt("unpipe"),r.unpipe(e)}return r.on("data",f),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",p),e.once("close",h),e.once("finish",d),e.emit("pipe",r),n.flowing||(Wt("pipe resume"),r.resume()),e},Zt.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},hr.prototype._write=function(e,t,r){r(new Error("not implemented"))},hr.prototype._writev=null,hr.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,wr(e,t),r&&(t.finished?Ye(r):e.once("finish",r)),t.ended=!0,e.writable=!1}(this,n,r)},at(Sr,Zt);for(var Ar=Object.keys(hr.prototype),_r=0;_r{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};function Br(e,t){for(var r=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var Mr=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Vr=function(e){return Mr.exec(e).slice(1)};function Gr(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(e=n+"/"+e,t="/"===n.charAt(0))}return(t?"/":"")+(e=Br(Qr(e.split("/"),(function(e){return!!e})),!t).join("/"))||"."}function Hr(e){var t=zr(e),r="/"===Xr(e,-1);return(e=Br(Qr(e.split("/"),(function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function zr(e){return"/"===e.charAt(0)}function Yr(){return Hr(Qr(Array.prototype.slice.call(arguments,0),(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))}function $r(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=Gr(e).substr(1),t=Gr(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;se.length?r:e})),c.value=e.join(f)}else c.value=e.join(r.slice(s,s+c.count));s+=c.count,c.added||(u+=c.count)}}var p=t[a-1];return a>1&&"string"==typeof p.value&&(p.added||p.removed)&&e.equals("",p.value)&&(t[a-2].value+=p.value,t.pop()),t}Object.defineProperty(e,"__esModule",{value:!0}),e.default=t,t.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.callback;"function"==typeof n&&(o=n,n={}),this.options=n;var i=this;function a(e){return o?(setTimeout((function(){o(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,u=e.length,c=1,l=s+u,f=[{newPos:-1,components:[]}],p=this.extractCommon(f[0],t,e,0);if(f[0].newPos+1>=s&&p+1>=u)return a([{value:this.join(t),count:t.length}]);function h(){for(var n=-1*c;n<=c;n+=2){var o=void 0,l=f[n-1],p=f[n+1],h=(p?p.newPos:0)-n;l&&(f[n-1]=void 0);var d=l&&l.newPos+1=s&&h+1>=u)return a(r(i,o.components,t,e,i.useLongestToken));f[n]=o}else f[n]=void 0}var y;c++}if(o)!function e(){setTimeout((function(){if(c>l)return o();h()||e()}),0)}();else for(;c<=l;){var d=h();if(d)return d}},pushComponent:function(e,t,r){var n=e[e.length-1];n&&n.added===t&&n.removed===r?e[e.length-1]={count:n.count+1,added:t,removed:r}:e.push({count:1,added:t,removed:r})},extractCommon:function(e,t,r,n){for(var o=t.length,i=r.length,a=e.newPos,s=a-n,u=0;a+11&&void 0!==arguments[1]?arguments[1]:{},r=e.split(/\r\n|[\n\v\f\r\x85]/),n=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],o=[],i=0;function a(){var e={};for(o.push(e);i2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof t&&(t=(0,In.parsePatch)(t)),Array.isArray(t)){if(t.length>1)throw new Error("applyPatch only works with a single input.");t=t[0]}var n,o,i=e.split(/\r\n|[\n\v\f\r\x85]/),a=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=t.hunks,u=r.compareLine||function(e,t,r,n){return t===n},c=0,l=r.fuzzFactor||0,f=0,p=0;function h(e,t){for(var r=0;r0?n[0]:" ",a=n.length>0?n.substr(1):n;if(" "===o||"-"===o){if(!u(t+1,i[t],o,a)&&++c>l)return!1;t++}}return!0}for(var d=0;d0?S[0]:" ",D=S.length>0?S.substr(1):S,R=A.linedelimiters[T];if(" "===x)_++;else if("-"===x)i.splice(_,1),a.splice(_,1);else if("+"===x)i.splice(_,0,D),a.splice(_,0,R),_++;else if("\\"===x){var N=A.lines[T-1]?A.lines[T-1][0]:null;"+"===N?n=!0:"-"===N&&(o=!0)}}}if(n)for(;!i[i.length-1];)i.pop(),a.pop();else o&&(i.push(""),a.push("\n"));for(var O=0;Oe.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?u(g.lines.slice(-a.context)):[],l-=p.length,f-=p.length)}(i=p).push.apply(i,Vn(o.map((function(e){return(t.added?"+":"-")+e})))),t.added?d+=o.length:h+=o.length}else{if(l)if(o.length<=2*a.context&&e=s.length-2&&o.length<=a.context){var w=/\n$/.test(r),E=/\n$/.test(n),A=0==o.length&&p.length>v.oldLines;!w&&A&&r.length>0&&p.splice(v.oldLines,0,"\\ No newline at end of file"),(w||A)&&E||p.push("\\ No newline at end of file")}c.push(v),l=0,f=0,p=[]}h+=o.length,d+=o.length}},y=0;ye.length)return!1;for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r/g,">")).replace(/"/g,""")}Object.defineProperty(bo,"__esModule",{value:!0}),bo.convertChangesToXML=function(e){for(var t=[],r=0;r"):n.removed&&t.push(""),t.push(vo(n.value)),n.added?t.push(""):n.removed&&t.push("")}return t.join("")},function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Diff",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"diffChars",{enumerable:!0,get:function(){return r.diffChars}}),Object.defineProperty(e,"diffWords",{enumerable:!0,get:function(){return n.diffWords}}),Object.defineProperty(e,"diffWordsWithSpace",{enumerable:!0,get:function(){return n.diffWordsWithSpace}}),Object.defineProperty(e,"diffLines",{enumerable:!0,get:function(){return o.diffLines}}),Object.defineProperty(e,"diffTrimmedLines",{enumerable:!0,get:function(){return o.diffTrimmedLines}}),Object.defineProperty(e,"diffSentences",{enumerable:!0,get:function(){return i.diffSentences}}),Object.defineProperty(e,"diffCss",{enumerable:!0,get:function(){return a.diffCss}}),Object.defineProperty(e,"diffJson",{enumerable:!0,get:function(){return s.diffJson}}),Object.defineProperty(e,"canonicalize",{enumerable:!0,get:function(){return s.canonicalize}}),Object.defineProperty(e,"diffArrays",{enumerable:!0,get:function(){return u.diffArrays}}),Object.defineProperty(e,"applyPatch",{enumerable:!0,get:function(){return c.applyPatch}}),Object.defineProperty(e,"applyPatches",{enumerable:!0,get:function(){return c.applyPatches}}),Object.defineProperty(e,"parsePatch",{enumerable:!0,get:function(){return l.parsePatch}}),Object.defineProperty(e,"merge",{enumerable:!0,get:function(){return f.merge}}),Object.defineProperty(e,"structuredPatch",{enumerable:!0,get:function(){return p.structuredPatch}}),Object.defineProperty(e,"createTwoFilesPatch",{enumerable:!0,get:function(){return p.createTwoFilesPatch}}),Object.defineProperty(e,"createPatch",{enumerable:!0,get:function(){return p.createPatch}}),Object.defineProperty(e,"convertChangesToDMP",{enumerable:!0,get:function(){return h.convertChangesToDMP}}),Object.defineProperty(e,"convertChangesToXML",{enumerable:!0,get:function(){return d.convertChangesToXML}});var t=function(e){return e&&e.__esModule?e:{default:e}}(on),r=an,n=cn,o=yn,i=wn,a=An,s=Tn,u=Ln,c=Pn,l=Cn,f=Fn,p=Bn,h=mo,d=bo}(nn);var wo=1e3,Eo=60*wo,Ao=60*Eo,_o=24*Ao,To=7*_o,So=365.25*_o,xo=function(e,t){t=t||{};var r=typeof e;if("string"===r&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*So;case"weeks":case"week":case"w":return r*To;case"days":case"day":case"d":return r*_o;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ao;case"minutes":case"minute":case"mins":case"min":case"m":return r*Eo;case"seconds":case"second":case"secs":case"sec":case"s":return r*wo;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}(e);if("number"===r&&isFinite(e))return t.long?function(e){var t=Math.abs(e);return t>=_o?Do(e,t,_o,"day"):t>=Ao?Do(e,t,Ao,"hour"):t>=Eo?Do(e,t,Eo,"minute"):t>=wo?Do(e,t,wo,"second"):e+" ms"}(e):function(e){var t=Math.abs(e);return t>=_o?Math.round(e/_o)+"d":t>=Ao?Math.round(e/Ao)+"h":t>=Eo?Math.round(e/Eo)+"m":t>=wo?Math.round(e/wo)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Do(e,t,r,n){var o=t>=1.5*r;return Math.round(e/r)+" "+n+(o?"s":"")}var Ro=[],No=[],Oo="undefined"!=typeof Uint8Array?Uint8Array:Array,Lo=!1;function ko(){Lo=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t>18&63]+Ro[a>>12&63]+Ro[a>>6&63]+Ro[63&a]);var a;return o.join("")}function Co(e){var t;Lo||ko();for(var r=e.length,n=r%3,o="",i=[],a=16383,s=0,u=r-n;su?u:s+a));return 1===n?(t=e[r-1],o+=Ro[t>>2],o+=Ro[t<<4&63],o+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],o+=Ro[t>>10],o+=Ro[t>>4&63],o+=Ro[t<<2&63],o+="="),i.push(o),i.join("")}function qo(e,t,r,n,o){var i,a,s=8*o-n-1,u=(1<>1,l=-7,f=r?o-1:0,p=r?-1:1,h=e[t+f];for(f+=p,i=h&(1<<-l)-1,h>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=p,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=n;l>0;a=256*a+e[t+f],f+=p,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),i-=c}return(h?-1:1)*a*Math.pow(2,i-n)}function Io(e,t,r,n,o,i){var a,s,u,c=8*i-o-1,l=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,d=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+f>=1?p/u:p*Math.pow(2,1-f))*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[r+h]=255&s,h+=d,s/=256,o-=8);for(a=a<0;e[r+h]=255&a,h+=d,a/=256,c-=8);e[r+h-d]|=128*g}var jo={}.toString,Uo=Array.isArray||function(e){return"[object Array]"==jo.call(e)};function Fo(){return Mo.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Bo(e,t){if(Fo()=Fo())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Fo().toString(16)+" bytes");return 0|e}function $o(e){return!(null==e||!e._isBuffer)}function Wo(e,t){if($o(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return wi(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Ei(e).length;default:if(n)return wi(e).length;t=(""+t).toLowerCase(),n=!0}}function Jo(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return li(this,t,r);case"utf8":case"utf-8":return ai(this,t,r);case"ascii":return ui(this,t,r);case"latin1":case"binary":return ci(this,t,r);case"base64":return ii(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return fi(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function Zo(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function Ko(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=Mo.from(t,n)),$o(t))return 0===t.length?-1:Qo(e,t,r,n,o);if("number"==typeof t)return t&=255,Mo.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Qo(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function Qo(e,t,r,n,o){var i,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=r;is&&(r=s-u),i=r;i>=0;i--){for(var f=!0,p=0;po&&(n=o):n=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function ii(e,t,r){return 0===t&&r===e.length?Co(e):Co(e.slice(t,r))}function ai(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(i=e[o+1]))&&(u=(31&c)<<6|63&i)>127&&(l=u);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=f}return function(e){var t=e.length;if(t<=si)return String.fromCharCode.apply(String,e);for(var r="",n=0;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},Mo.prototype.compare=function(e,t,r,n,o){if(!$o(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(n,o),c=e.slice(t,r),l=0;lo)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return Xo(this,e,t,r);case"utf8":case"utf-8":return ei(this,e,t,r);case"ascii":return ti(this,e,t,r);case"latin1":case"binary":return ri(this,e,t,r);case"base64":return ni(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return oi(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},Mo.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var si=4096;function ui(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;oo)&&(r=o);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function hi(e,t,r,n,o,i){if(!$o(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function di(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-r,2);o>>8*(n?o:1-o)}function gi(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-r,4);o>>8*(n?o:3-o)&255}function yi(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function mi(e,t,r,n,o){return o||yi(e,0,r,4),Io(e,t,r,n,23,4),r+4}function bi(e,t,r,n,o){return o||yi(e,0,r,8),Io(e,t,r,n,52,8),r+8}Mo.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(o*=256);)n+=this[e+--t]*o;return n},Mo.prototype.readUInt8=function(e,t){return t||pi(e,1,this.length),this[e]},Mo.prototype.readUInt16LE=function(e,t){return t||pi(e,2,this.length),this[e]|this[e+1]<<8},Mo.prototype.readUInt16BE=function(e,t){return t||pi(e,2,this.length),this[e]<<8|this[e+1]},Mo.prototype.readUInt32LE=function(e,t){return t||pi(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Mo.prototype.readUInt32BE=function(e,t){return t||pi(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Mo.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||pi(e,t,this.length);for(var n=this[e],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*t)),n},Mo.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||pi(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},Mo.prototype.readInt8=function(e,t){return t||pi(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Mo.prototype.readInt16LE=function(e,t){t||pi(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},Mo.prototype.readInt16BE=function(e,t){t||pi(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},Mo.prototype.readInt32LE=function(e,t){return t||pi(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Mo.prototype.readInt32BE=function(e,t){return t||pi(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Mo.prototype.readFloatLE=function(e,t){return t||pi(e,4,this.length),qo(this,e,!0,23,4)},Mo.prototype.readFloatBE=function(e,t){return t||pi(e,4,this.length),qo(this,e,!1,23,4)},Mo.prototype.readDoubleLE=function(e,t){return t||pi(e,8,this.length),qo(this,e,!0,52,8)},Mo.prototype.readDoubleBE=function(e,t){return t||pi(e,8,this.length),qo(this,e,!1,52,8)},Mo.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||hi(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+r},Mo.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,1,255,0),Mo.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Mo.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,2,65535,0),Mo.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):di(this,e,t,!0),t+2},Mo.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,2,65535,0),Mo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):di(this,e,t,!1),t+2},Mo.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,4,4294967295,0),Mo.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):gi(this,e,t,!0),t+4},Mo.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,4,4294967295,0),Mo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):gi(this,e,t,!1),t+4},Mo.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);hi(this,e,t,r,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},Mo.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);hi(this,e,t,r,o-1,-o)}var i=r-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+r},Mo.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,1,127,-128),Mo.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Mo.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,2,32767,-32768),Mo.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):di(this,e,t,!0),t+2},Mo.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,2,32767,-32768),Mo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):di(this,e,t,!1),t+2},Mo.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,4,2147483647,-2147483648),Mo.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):gi(this,e,t,!0),t+4},Mo.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||hi(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Mo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):gi(this,e,t,!1),t+4},Mo.prototype.writeFloatLE=function(e,t,r){return mi(this,e,t,!0,r)},Mo.prototype.writeFloatBE=function(e,t,r){return mi(this,e,t,!1,r)},Mo.prototype.writeDoubleLE=function(e,t,r){return bi(this,e,t,!0,r)},Mo.prototype.writeDoubleBE=function(e,t,r){return bi(this,e,t,!1,r)},Mo.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else if(i<1e3||!Mo.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function Ei(e){return function(e){var t,r,n,o,i,a;Lo||ko();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===e[s-2]?2:"="===e[s-1]?1:0,a=new Oo(3*s/4-i),n=i>0?s-4:s;var u=0;for(t=0,r=0;t>16&255,a[u++]=o>>8&255,a[u++]=255&o;return 2===i?(o=No[e.charCodeAt(t)]<<2|No[e.charCodeAt(t+1)]>>4,a[u++]=255&o):1===i&&(o=No[e.charCodeAt(t)]<<10|No[e.charCodeAt(t+1)]<<4|No[e.charCodeAt(t+2)]>>2,a[u++]=o>>8&255,a[u++]=255&o),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(vi,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Ai(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function _i(e){return null!=e&&(!!e._isBuffer||Ti(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Ti(e.slice(0,0))}(e))}function Ti(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var Si={};var xi={nanoid:(e=21)=>{let t="",r=e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(r=t)=>{let n="",o=r;for(;o--;)n+=e[Math.random()*e.length|0];return n}},Di={exports:{}};(function(e,t){!function(r){var n=t,o=e&&e.exports==n&&e,i="object"==typeof R&&R;i.global!==i&&i.window!==i||(r=i);var a=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s=/[\x01-\x7F]/g,u=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,c=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,l={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon",ˆ:"circ",ˇ:"caron","°":"deg","©":"copy","®":"reg","℗":"copysr",℘:"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78",𝒶:"ascr",𝕒:"aopf",𝔞:"afr",𝔸:"Aopf",𝔄:"Afr",𝒜:"Ascr",ª:"ordf",á:"aacute",Á:"Aacute",à:"agrave",À:"Agrave",ă:"abreve",Ă:"Abreve",â:"acirc",Â:"Acirc",å:"aring",Å:"angst",ä:"auml",Ä:"Auml",ã:"atilde",Ã:"Atilde",ą:"aogon",Ą:"Aogon",ā:"amacr",Ā:"Amacr",æ:"aelig",Æ:"AElig",𝒷:"bscr",𝕓:"bopf",𝔟:"bfr",𝔹:"Bopf",ℬ:"Bscr",𝔅:"Bfr",𝔠:"cfr",𝒸:"cscr",𝕔:"copf",ℭ:"Cfr",𝒞:"Cscr",ℂ:"Copf",ć:"cacute",Ć:"Cacute",ĉ:"ccirc",Ĉ:"Ccirc",č:"ccaron",Č:"Ccaron",ċ:"cdot",Ċ:"Cdot",ç:"ccedil",Ç:"Ccedil","℅":"incare",𝔡:"dfr",ⅆ:"dd",𝕕:"dopf",𝒹:"dscr",𝒟:"Dscr",𝔇:"Dfr",ⅅ:"DD",𝔻:"Dopf",ď:"dcaron",Ď:"Dcaron",đ:"dstrok",Đ:"Dstrok",ð:"eth",Ð:"ETH",ⅇ:"ee",ℯ:"escr",𝔢:"efr",𝕖:"eopf",ℰ:"Escr",𝔈:"Efr",𝔼:"Eopf",é:"eacute",É:"Eacute",è:"egrave",È:"Egrave",ê:"ecirc",Ê:"Ecirc",ě:"ecaron",Ě:"Ecaron",ë:"euml",Ë:"Euml",ė:"edot",Ė:"Edot",ę:"eogon",Ę:"Eogon",ē:"emacr",Ē:"Emacr",𝔣:"ffr",𝕗:"fopf",𝒻:"fscr",𝔉:"Ffr",𝔽:"Fopf",ℱ:"Fscr",ff:"fflig",ffi:"ffilig",ffl:"ffllig",fi:"filig",fj:"fjlig",fl:"fllig",ƒ:"fnof",ℊ:"gscr",𝕘:"gopf",𝔤:"gfr",𝒢:"Gscr",𝔾:"Gopf",𝔊:"Gfr",ǵ:"gacute",ğ:"gbreve",Ğ:"Gbreve",ĝ:"gcirc",Ĝ:"Gcirc",ġ:"gdot",Ġ:"Gdot",Ģ:"Gcedil",𝔥:"hfr",ℎ:"planckh",𝒽:"hscr",𝕙:"hopf",ℋ:"Hscr",ℌ:"Hfr",ℍ:"Hopf",ĥ:"hcirc",Ĥ:"Hcirc",ℏ:"hbar",ħ:"hstrok",Ħ:"Hstrok",𝕚:"iopf",𝔦:"ifr",𝒾:"iscr",ⅈ:"ii",𝕀:"Iopf",ℐ:"Iscr",ℑ:"Im",í:"iacute",Í:"Iacute",ì:"igrave",Ì:"Igrave",î:"icirc",Î:"Icirc",ï:"iuml",Ï:"Iuml",ĩ:"itilde",Ĩ:"Itilde",İ:"Idot",į:"iogon",Į:"Iogon",ī:"imacr",Ī:"Imacr",ij:"ijlig",IJ:"IJlig",ı:"imath",𝒿:"jscr",𝕛:"jopf",𝔧:"jfr",𝒥:"Jscr",𝔍:"Jfr",𝕁:"Jopf",ĵ:"jcirc",Ĵ:"Jcirc",ȷ:"jmath",𝕜:"kopf",𝓀:"kscr",𝔨:"kfr",𝒦:"Kscr",𝕂:"Kopf",𝔎:"Kfr",ķ:"kcedil",Ķ:"Kcedil",𝔩:"lfr",𝓁:"lscr",ℓ:"ell",𝕝:"lopf",ℒ:"Lscr",𝔏:"Lfr",𝕃:"Lopf",ĺ:"lacute",Ĺ:"Lacute",ľ:"lcaron",Ľ:"Lcaron",ļ:"lcedil",Ļ:"Lcedil",ł:"lstrok",Ł:"Lstrok",ŀ:"lmidot",Ŀ:"Lmidot",𝔪:"mfr",𝕞:"mopf",𝓂:"mscr",𝔐:"Mfr",𝕄:"Mopf",ℳ:"Mscr",𝔫:"nfr",𝕟:"nopf",𝓃:"nscr",ℕ:"Nopf",𝒩:"Nscr",𝔑:"Nfr",ń:"nacute",Ń:"Nacute",ň:"ncaron",Ň:"Ncaron",ñ:"ntilde",Ñ:"Ntilde",ņ:"ncedil",Ņ:"Ncedil","№":"numero",ŋ:"eng",Ŋ:"ENG",𝕠:"oopf",𝔬:"ofr",ℴ:"oscr",𝒪:"Oscr",𝔒:"Ofr",𝕆:"Oopf",º:"ordm",ó:"oacute",Ó:"Oacute",ò:"ograve",Ò:"Ograve",ô:"ocirc",Ô:"Ocirc",ö:"ouml",Ö:"Ouml",ő:"odblac",Ő:"Odblac",õ:"otilde",Õ:"Otilde",ø:"oslash",Ø:"Oslash",ō:"omacr",Ō:"Omacr",œ:"oelig",Œ:"OElig",𝔭:"pfr",𝓅:"pscr",𝕡:"popf",ℙ:"Popf",𝔓:"Pfr",𝒫:"Pscr",𝕢:"qopf",𝔮:"qfr",𝓆:"qscr",𝒬:"Qscr",𝔔:"Qfr",ℚ:"Qopf",ĸ:"kgreen",𝔯:"rfr",𝕣:"ropf",𝓇:"rscr",ℛ:"Rscr",ℜ:"Re",ℝ:"Ropf",ŕ:"racute",Ŕ:"Racute",ř:"rcaron",Ř:"Rcaron",ŗ:"rcedil",Ŗ:"Rcedil",𝕤:"sopf",𝓈:"sscr",𝔰:"sfr",𝕊:"Sopf",𝔖:"Sfr",𝒮:"Sscr","Ⓢ":"oS",ś:"sacute",Ś:"Sacute",ŝ:"scirc",Ŝ:"Scirc",š:"scaron",Š:"Scaron",ş:"scedil",Ş:"Scedil",ß:"szlig",𝔱:"tfr",𝓉:"tscr",𝕥:"topf",𝒯:"Tscr",𝔗:"Tfr",𝕋:"Topf",ť:"tcaron",Ť:"Tcaron",ţ:"tcedil",Ţ:"Tcedil","™":"trade",ŧ:"tstrok",Ŧ:"Tstrok",𝓊:"uscr",𝕦:"uopf",𝔲:"ufr",𝕌:"Uopf",𝔘:"Ufr",𝒰:"Uscr",ú:"uacute",Ú:"Uacute",ù:"ugrave",Ù:"Ugrave",ŭ:"ubreve",Ŭ:"Ubreve",û:"ucirc",Û:"Ucirc",ů:"uring",Ů:"Uring",ü:"uuml",Ü:"Uuml",ű:"udblac",Ű:"Udblac",ũ:"utilde",Ũ:"Utilde",ų:"uogon",Ų:"Uogon",ū:"umacr",Ū:"Umacr",𝔳:"vfr",𝕧:"vopf",𝓋:"vscr",𝔙:"Vfr",𝕍:"Vopf",𝒱:"Vscr",𝕨:"wopf",𝓌:"wscr",𝔴:"wfr",𝒲:"Wscr",𝕎:"Wopf",𝔚:"Wfr",ŵ:"wcirc",Ŵ:"Wcirc",𝔵:"xfr",𝓍:"xscr",𝕩:"xopf",𝕏:"Xopf",𝔛:"Xfr",𝒳:"Xscr",𝔶:"yfr",𝓎:"yscr",𝕪:"yopf",𝒴:"Yscr",𝔜:"Yfr",𝕐:"Yopf",ý:"yacute",Ý:"Yacute",ŷ:"ycirc",Ŷ:"Ycirc",ÿ:"yuml",Ÿ:"Yuml",𝓏:"zscr",𝔷:"zfr",𝕫:"zopf",ℨ:"Zfr",ℤ:"Zopf",𝒵:"Zscr",ź:"zacute",Ź:"Zacute",ž:"zcaron",Ž:"Zcaron",ż:"zdot",Ż:"Zdot",Ƶ:"imped",þ:"thorn",Þ:"THORN",ʼn:"napos",α:"alpha",Α:"Alpha",β:"beta",Β:"Beta",γ:"gamma",Γ:"Gamma",δ:"delta",Δ:"Delta",ε:"epsi",ϵ:"epsiv",Ε:"Epsilon",ϝ:"gammad",Ϝ:"Gammad",ζ:"zeta",Ζ:"Zeta",η:"eta",Η:"Eta",θ:"theta",ϑ:"thetav",Θ:"Theta",ι:"iota",Ι:"Iota",κ:"kappa",ϰ:"kappav",Κ:"Kappa",λ:"lambda",Λ:"Lambda",μ:"mu",µ:"micro",Μ:"Mu",ν:"nu",Ν:"Nu",ξ:"xi",Ξ:"Xi",ο:"omicron",Ο:"Omicron",π:"pi",ϖ:"piv",Π:"Pi",ρ:"rho",ϱ:"rhov",Ρ:"Rho",σ:"sigma",Σ:"Sigma",ς:"sigmaf",τ:"tau",Τ:"Tau",υ:"upsi",Υ:"Upsilon",ϒ:"Upsi",φ:"phi",ϕ:"phiv",Φ:"Phi",χ:"chi",Χ:"Chi",ψ:"psi",Ψ:"Psi",ω:"omega",Ω:"ohm",а:"acy",А:"Acy",б:"bcy",Б:"Bcy",в:"vcy",В:"Vcy",г:"gcy",Г:"Gcy",ѓ:"gjcy",Ѓ:"GJcy",д:"dcy",Д:"Dcy",ђ:"djcy",Ђ:"DJcy",е:"iecy",Е:"IEcy",ё:"iocy",Ё:"IOcy",є:"jukcy",Є:"Jukcy",ж:"zhcy",Ж:"ZHcy",з:"zcy",З:"Zcy",ѕ:"dscy",Ѕ:"DScy",и:"icy",И:"Icy",і:"iukcy",І:"Iukcy",ї:"yicy",Ї:"YIcy",й:"jcy",Й:"Jcy",ј:"jsercy",Ј:"Jsercy",к:"kcy",К:"Kcy",ќ:"kjcy",Ќ:"KJcy",л:"lcy",Л:"Lcy",љ:"ljcy",Љ:"LJcy",м:"mcy",М:"Mcy",н:"ncy",Н:"Ncy",њ:"njcy",Њ:"NJcy",о:"ocy",О:"Ocy",п:"pcy",П:"Pcy",р:"rcy",Р:"Rcy",с:"scy",С:"Scy",т:"tcy",Т:"Tcy",ћ:"tshcy",Ћ:"TSHcy",у:"ucy",У:"Ucy",ў:"ubrcy",Ў:"Ubrcy",ф:"fcy",Ф:"Fcy",х:"khcy",Х:"KHcy",ц:"tscy",Ц:"TScy",ч:"chcy",Ч:"CHcy",џ:"dzcy",Џ:"DZcy",ш:"shcy",Ш:"SHcy",щ:"shchcy",Щ:"SHCHcy",ъ:"hardcy",Ъ:"HARDcy",ы:"ycy",Ы:"Ycy",ь:"softcy",Ь:"SOFTcy",э:"ecy",Э:"Ecy",ю:"yucy",Ю:"YUcy",я:"yacy",Я:"YAcy",ℵ:"aleph",ℶ:"beth",ℷ:"gimel",ℸ:"daleth"},f=/["&'<>`]/g,p={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},h=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,d=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,y={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},m={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},b={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},v=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],w=String.fromCharCode,E={}.hasOwnProperty,A=function(e,t){return E.call(e,t)},_=function(e,t){if(!e)return t;var r,n={};for(r in t)n[r]=A(e,r)?e[r]:t[r];return n},T=function(e,t){var r="";return e>=55296&&e<=57343||e>1114111?(t&&D("character reference outside the permissible Unicode range"),"�"):A(b,e)?(t&&D("disallowed character reference"),b[e]):(t&&function(e,t){for(var r=-1,n=e.length;++r65535&&(r+=w((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=w(e))},S=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},x=function(e){return"&#"+e+";"},D=function(e){throw Error("Parse error: "+e)},N=function(e,t){(t=_(t,N.options)).strict&&d.test(e)&&D("forbidden code point");var r=t.encodeEverything,n=t.useNamedReferences,o=t.allowUnsafeSymbols,i=t.decimal?x:S,p=function(e){return i(e.charCodeAt(0))};return r?(e=e.replace(s,(function(e){return n&&A(l,e)?"&"+l[e]+";":p(e)})),n&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),n&&(e=e.replace(c,(function(e){return"&"+l[e]+";"})))):n?(o||(e=e.replace(f,(function(e){return"&"+l[e]+";"}))),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(c,(function(e){return"&"+l[e]+";"}))):o||(e=e.replace(f,p)),e.replace(a,(function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1);return i(1024*(t-55296)+r-56320+65536)})).replace(u,p)};N.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var O=function(e,t){var r=(t=_(t,O.options)).strict;return r&&h.test(e)&&D("malformed character reference"),e.replace(g,(function(e,n,o,i,a,s,u,c,l){var f,p,h,d,g,b;return n?y[g=n]:o?(g=o,(b=i)&&t.isAttributeValue?(r&&"="==b&&D("`&` did not start a character reference"),e):(r&&D("named character reference was not terminated by a semicolon"),m[g]+(b||""))):a?(h=a,p=s,r&&!p&&D("character reference was not terminated by a semicolon"),f=parseInt(h,10),T(f,r)):u?(d=u,p=c,r&&!p&&D("character reference was not terminated by a semicolon"),f=parseInt(d,16),T(f,r)):(r&&D("named character reference was not terminated by a semicolon"),e)}))};O.options={isAttributeValue:!1,strict:!1};var L={version:"1.2.0",encode:N,decode:O,escape:function(e){return e.replace(f,(function(e){return p[e]}))},unescape:O};if(n&&!n.nodeType)if(o)o.exports=L;else for(var k in L)A(L,k)&&(n[k]=L[k]);else r.he=L}(R)})(Di,Di.exports),function(e){const{nanoid:t}=xi;var r=en,n=Cr,o=Di.exports;const i="__mocha_id__";function a(e,t){switch(t){case"function":return"[Function]";case"object":return"{}";case"array":return"[]";default:return e.toString()}}e.inherits=n.inherits,e.escape=function(e){return o.encode(String(e),{useNamedReferences:!1})},e.isString=function(e){return"string"==typeof e},e.slug=function(e){return e.toLowerCase().replace(/\s+/g,"-").replace(/[^-\w]/g,"").replace(/-{2,}/g,"-")},e.clean=function(e){var t=(e=e.replace(/\r\n?|[\n\u2028\u2029]/g,"\n").replace(/^\uFEFF/,"").replace(/^function(?:\s*|\s[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\}|((?:.|\n)*))$/,"$1$2$3")).match(/^\n?( *)/)[1].length,r=e.match(/^\n?(\t*)/)[1].length,n=new RegExp("^\n?"+(r?"\t":" ")+"{"+(r||t)+"}","gm");return(e=e.replace(n,"")).trim()};var s=e.canonicalType=function(e){return void 0===e?"undefined":null===e?"null":_i(e)?"buffer":Object.prototype.toString.call(e).replace(/^\[.+\s(.+?)]$/,"$1").toLowerCase()};function u(e,t,r){if(void 0===t)return l(e);var n=t*(r=r||1),o=Array.isArray(e)?"[":"{",i=Array.isArray(e)?"]":"}",a="number"==typeof e.length?e.length:Object.keys(e).length;function c(e,t){return new Array(t).join(e)}function l(e){switch(s(e)){case"null":case"undefined":e="["+e+"]";break;case"array":case"object":e=u(e,t,r+1);break;case"boolean":case"regexp":case"symbol":case"number":e=0===e&&1/e==-1/0?"-0":e.toString();break;case"bigint":e=e.toString()+"n";break;case"date":var n=isNaN(e.getTime())?e.toString():e.toISOString();e="[Date: "+n+"]";break;case"buffer":var o=e.toJSON();e="[Buffer: "+u(o=o.data&&o.type?o.data:o,2,r+1)+"]";break;default:e="[Function]"===e||"[Circular]"===e?e:JSON.stringify(e)}return e}for(var f in e)Object.prototype.hasOwnProperty.call(e,f)&&(--a,o+="\n "+c(" ",n)+(Array.isArray(e)?"":'"'+f+'": ')+l(e[f])+(a?",":""));return o+(1!==o.length?"\n"+c(" ",--n)+i:i)}e.type=function(e){if(null===e)return"null";const t=new Set(["undefined","boolean","number","string","bigint","symbol"]),r=typeof e;return"function"===r||t.has(r)?r:e instanceof String?"string":e instanceof Error?"error":Array.isArray(e)?"array":r},e.stringify=function(t){var r=s(t);if(!~["object","array","function"].indexOf(r)){if("buffer"===r){var n=Mo.prototype.toJSON.call(t);return u(n.data&&n.type?n.data:n,2).replace(/,(\n|$)/g,"$1")}if("string"!==r||"object"!=typeof t)return u(t);t=t.split("").reduce((function(e,t,r){return e[r]=t,e}),{}),r="object"}for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o))return u(e.canonicalize(t,null,r),2).replace(/,(\n|$)/g,"$1");return a(t,r)},e.canonicalize=function(t,r,n){var o,i;function u(e,t){r.push(e),t(),r.pop()}if(n=n||s(t),-1!==(r=r||[]).indexOf(t))return"[Circular]";switch(n){case"undefined":case"buffer":case"null":o=t;break;case"array":u(t,(function(){o=t.map((function(t){return e.canonicalize(t,r)}))}));break;case"function":for(i in t){o={};break}if(!o){o=a(t,n);break}case"object":o=o||{},u(t,(function(){Object.keys(t).sort().forEach((function(n){o[n]=e.canonicalize(t[n],r)}))}));break;case"date":case"number":case"regexp":case"boolean":case"symbol":o=t;break;default:o=t+""}return o},e.stackTraceFilter=function(){var t,n="undefined"==typeof document?{node:!0}:{browser:!0},o=r.sep;return n.node?t=e.cwd()+o:(t=("undefined"==typeof location?window.location:location).href.replace(/\/[^/]*$/,"/"),o="/"),function(e){return e=(e=e.split("\n")).reduce((function(e,r){return function(e){return~e.indexOf("node_modules"+o+"mocha"+o)||~e.indexOf(o+"mocha.js")||~e.indexOf(o+"mocha.min.js")}(r)||n.node&&function(e){return~e.indexOf("(timers.js:")||~e.indexOf("(events.js:")||~e.indexOf("(node.js:")||~e.indexOf("(module.js:")||~e.indexOf("GeneratorFunctionPrototype.next (native)")||!1}(r)||(/:\d+:\d+\)?$/.test(r)&&(r=r.replace("("+t,"(")),e.push(r)),e}),[]),e.join("\n")}},e.isPromise=function(e){return"object"==typeof e&&null!==e&&"function"==typeof e.then},e.clamp=function(e,t){return Math.min(Math.max(e,t[0]),t[1])},e.noop=function(){},e.createMap=function(e){return Object.assign.apply(null,[Object.create(null)].concat(Array.prototype.slice.call(arguments)))},e.defineConstants=function(t){if("object"!==s(t)||!Object.keys(t).length)throw new TypeError("Invalid argument; expected a non-empty object");return Object.freeze(e.createMap(t))},e.cwd=function(){return D.cwd()},e.isBrowser=function(){return Boolean(true)},e.castArray=function(e){return void 0===e?[]:null===e?[null]:"object"!=typeof e||"function"!=typeof e[Symbol.iterator]&&void 0===e.length?[e]:Array.from(e)},e.constants=e.defineConstants({MOCHA_ID_PROP_NAME:i}),e.uniqueID=()=>t(),e.assignNewMochaID=t=>{const r=e.uniqueID();return Object.defineProperty(t,i,{get:()=>r}),t},e.getMochaID=e=>e&&"object"==typeof e?e[i]:void 0}(Si);var Ri=N(Object.freeze({__proto__:null,default:{}})),Ni={info:"ℹ️",success:"✅",warning:"⚠️",error:"❌️"},Oi=N(U),Li=function(e){this.message=e};var ki={exports:{}},Pi=1e3,Ci=60*Pi,qi=60*Ci,Ii=24*qi,ji=7*Ii,Ui=365.25*Ii,Fi=function(e,t){t=t||{};var r=typeof e;if("string"===r&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*Ui;case"weeks":case"week":case"w":return r*ji;case"days":case"day":case"d":return r*Ii;case"hours":case"hour":case"hrs":case"hr":case"h":return r*qi;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ci;case"seconds":case"second":case"secs":case"sec":case"s":return r*Pi;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}(e);if("number"===r&&isFinite(e))return t.long?function(e){var t=Math.abs(e);return t>=Ii?Bi(e,t,Ii,"day"):t>=qi?Bi(e,t,qi,"hour"):t>=Ci?Bi(e,t,Ci,"minute"):t>=Pi?Bi(e,t,Pi,"second"):e+" ms"}(e):function(e){var t=Math.abs(e);return t>=Ii?Math.round(e/Ii)+"d":t>=qi?Math.round(e/qi)+"h":t>=Ci?Math.round(e/Ci)+"m":t>=Pi?Math.round(e/Pi)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Bi(e,t,r,n){var o=t>=1.5*r;return Math.round(e/r)+" "+n+(o?"s":"")}var Mi=function(e){function t(e){let n,o,i,a=null;function s(...e){if(!s.enabled)return;const r=s,o=Number(new Date),i=o-(n||o);r.diff=i,r.prev=n,r.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,o)=>{if("%%"===n)return"%";a++;const i=t.formatters[o];if("function"==typeof i){const t=e[a];n=i.call(r,t),e.splice(a,1),a--}return n})),t.formatArgs.call(r,e),(r.log||t.log).apply(r,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(o!==t.namespaces&&(o=t.namespaces,i=t.enabled(e)),i),set:e=>{a=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,r){const n=t(this.namespace+(void 0===r?":":r)+e);return n.log=this.log,n}function n(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(n),...t.skips.map(n).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),o=n.length;for(r=0;r{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t{"%%"!==e&&(n++,"%c"===e&&(o=n))})),t.splice(o,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&void 0!==D&&"env"in D&&(e=D.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=Mi(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(ki,ki.exports);const{format:Vi}=Cr,Gi=(e,t)=>{D.emitWarning?D.emitWarning(e,t):d((function(){console.warn(t+": "+e)}))},Hi=e=>{(e=String(e))&&!Hi.cache[e]&&(Hi.cache[e]=!0,Gi(e,"DeprecationWarning"))};Hi.cache={};var zi={FATAL:"ERR_MOCHA_FATAL",INVALID_ARG_TYPE:"ERR_MOCHA_INVALID_ARG_TYPE",INVALID_ARG_VALUE:"ERR_MOCHA_INVALID_ARG_VALUE",INVALID_EXCEPTION:"ERR_MOCHA_INVALID_EXCEPTION",INVALID_INTERFACE:"ERR_MOCHA_INVALID_INTERFACE",INVALID_REPORTER:"ERR_MOCHA_INVALID_REPORTER",MULTIPLE_DONE:"ERR_MOCHA_MULTIPLE_DONE",NO_FILES_MATCH_PATTERN:"ERR_MOCHA_NO_FILES_MATCH_PATTERN",UNSUPPORTED:"ERR_MOCHA_UNSUPPORTED",INSTANCE_ALREADY_RUNNING:"ERR_MOCHA_INSTANCE_ALREADY_RUNNING",INSTANCE_ALREADY_DISPOSED:"ERR_MOCHA_INSTANCE_ALREADY_DISPOSED",FORBIDDEN_EXCLUSIVITY:"ERR_MOCHA_FORBIDDEN_EXCLUSIVITY",INVALID_PLUGIN_IMPLEMENTATION:"ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION",INVALID_PLUGIN_DEFINITION:"ERR_MOCHA_INVALID_PLUGIN_DEFINITION",TIMEOUT:"ERR_MOCHA_TIMEOUT",UNPARSABLE_FILE:"ERR_MOCHA_UNPARSABLE_FILE"};const Yi=new Set(Object.values(zi));function $i(e,t){var r=new TypeError(e);return r.code=zi.INVALID_REPORTER,r.reporter=t,r}function Wi(e,t){var r=new Error(e);return r.code=zi.INVALID_INTERFACE,r.interface=t,r}function Ji(e,t,r){var n=new TypeError(e);return n.code=zi.INVALID_ARG_TYPE,n.argument=t,n.expected=r,n.actual=typeof t,n}function Zi(e,t,r){switch(t){case"reporter":return $i(e,r);case"ui":return Wi(e,r);default:throw new Error('unknown pluginType "'+t+'"')}}var Ki={constants:zi,createFatalError:function(e,t){var r=new Error(e);return r.code=zi.FATAL,r.valueType=typeof t,r.value=t,r},createForbiddenExclusivityError:function(e){var t=new Error(e.isWorker?"`.only` is not supported in parallel mode":"`.only` forbidden by --forbid-only");return t.code=zi.FORBIDDEN_EXCLUSIVITY,t},createInvalidArgumentTypeError:Ji,createInvalidArgumentValueError:function(e,t,r,n){var o=new TypeError(e);return o.code=zi.INVALID_ARG_VALUE,o.argument=t,o.value=r,o.reason=void 0!==n?n:"is invalid",o},createInvalidExceptionError:function(e,t){var r=new Error(e);return r.code=zi.INVALID_EXCEPTION,r.valueType=typeof t,r.value=t,r},createInvalidInterfaceError:Wi,createInvalidLegacyPluginError:Zi,createInvalidPluginDefinitionError:function(e,t){const r=new Error(e);return r.code=zi.INVALID_PLUGIN_DEFINITION,r.pluginDef=t,r},createInvalidPluginError:function(...e){return Hi("Use createInvalidLegacyPluginError() instead"),Zi(...e)},createInvalidPluginImplementationError:function(e,{pluginDef:t,pluginImpl:r}={}){const n=new Error(e);return n.code=zi.INVALID_PLUGIN_IMPLEMENTATION,n.pluginDef=t,n.pluginImpl=r,n},createInvalidReporterError:$i,createMissingArgumentError:function(e,t,r){return Ji(e,t,r)},createMochaInstanceAlreadyDisposedError:function(e,t,r){var n=new Error(e);return n.code=zi.INSTANCE_ALREADY_DISPOSED,n.cleanReferencesAfterRun=t,n.instance=r,n},createMochaInstanceAlreadyRunningError:function(e,t){var r=new Error(e);return r.code=zi.INSTANCE_ALREADY_RUNNING,r.instance=t,r},createMultipleDoneError:function(e,t){var r;try{r=Vi("<%s>",e.fullTitle()),e.parent.root&&(r+=" (of root suite)")}catch(t){r=Vi("<%s> (of unknown suite)",e.title)}var n=Vi("done() called multiple times in %s %s",e.type?e.type:"unknown runnable",r);e.file&&(n+=Vi(" of file %s",e.file)),t&&(n+=Vi("; in addition, done() received error: %s",t));var o=new Error(n);return o.code=zi.MULTIPLE_DONE,o.valueType=typeof t,o.value=t,o},createNoFilesMatchPatternError:function(e,t){var r=new Error(e);return r.code=zi.NO_FILES_MATCH_PATTERN,r.pattern=t,r},createTimeoutError:function(e,t,r){const n=new Error(e);return n.code=zi.TIMEOUT,n.timeout=t,n.file=r,n},createUnparsableFileError:function(e,t){var r=new Error(e);return r.code=zi.UNPARSABLE_FILE,r},createUnsupportedError:function(e){var t=new Error(e);return t.code=zi.UNSUPPORTED,t},deprecate:Hi,isMochaError:e=>Boolean(e&&"object"==typeof e&&Yi.has(e.code)),warn:e=>{e&&Gi(e)}},Qi=Oi.EventEmitter,Xi=Li,ea=ki.exports("mocha:runnable"),ta=xo,ra=Si;const{createInvalidExceptionError:na,createMultipleDoneError:oa,createTimeoutError:ia}=Ki;var aa=R.Date,sa=R.setTimeout,ua=R.clearTimeout,ca=Object.prototype.toString,la=fa;function fa(e,t){this.title=e,this.fn=t,this.body=(t||"").toString(),this.async=t&&t.length,this.sync=!this.async,this._timeout=2e3,this._slow=75,this._retries=-1,ra.assignNewMochaID(this),Object.defineProperty(this,"id",{get(){return ra.getMochaID(this)}}),this.reset()}ra.inherits(fa,Qi),fa.prototype.reset=function(){this.timedOut=!1,this._currentRetry=0,this.pending=!1,delete this.state,delete this.err},fa.prototype.timeout=function(e){if(!arguments.length)return this._timeout;"string"==typeof e&&(e=ta(e));var t=[0,Math.pow(2,31)-1];return(e=ra.clamp(e,t))===t[0]||e===t[1]?this._timeout=0:this._timeout=e,ea("timeout %d",this._timeout),this.timer&&this.resetTimeout(),this},fa.prototype.slow=function(e){return arguments.length&&void 0!==e?("string"==typeof e&&(e=ta(e)),ea("slow %d",e),this._slow=e,this):this._slow},fa.prototype.skip=function(){throw this.pending=!0,new Xi("sync skip; aborting execution")},fa.prototype.isPending=function(){return this.pending||this.parent&&this.parent.isPending()},fa.prototype.isFailed=function(){return!this.isPending()&&this.state===pa.STATE_FAILED},fa.prototype.isPassed=function(){return!this.isPending()&&this.state===pa.STATE_PASSED},fa.prototype.retries=function(e){if(!arguments.length)return this._retries;this._retries=e},fa.prototype.currentRetry=function(e){if(!arguments.length)return this._currentRetry;this._currentRetry=e},fa.prototype.fullTitle=function(){return this.titlePath().join(" ")},fa.prototype.titlePath=function(){return this.parent.titlePath().concat([this.title])},fa.prototype.clearTimeout=function(){ua(this.timer)},fa.prototype.resetTimeout=function(){var e=this,t=this.timeout();0!==t&&(this.clearTimeout(),this.timer=sa((function(){0!==e.timeout()&&(e.callback(e._timeoutError(t)),e.timedOut=!0)}),t))},fa.prototype.globals=function(e){if(!arguments.length)return this._allowedGlobals;this._allowedGlobals=e},fa.prototype.run=function(e){var t,r=this,n=new aa,o=this.ctx,i=!1;if(this.isPending())return e();function a(o){var a=r.timeout();if(!r.timedOut){if(t)return function(e){i||(i=!0,r.emit("error",oa(r,e)))}(o);r.clearTimeout(),r.duration=new aa-n,t=!0,!o&&r.duration>a&&a>0&&(o=r._timeoutError(a)),e(o)}}if(o&&o.runnable&&o.runnable(this),this.callback=a,this.fn&&"function"!=typeof this.fn.call)a(new TypeError("A runnable must be passed a function as its second argument."));else if(this.async){this.resetTimeout(),this.skip=function(){throw this.pending=!0,a(),new Xi("async skip; aborting execution")};try{!function(e){var t=e.call(o,(function(e){return e instanceof Error||"[object Error]"===ca.call(e)?a(e):e?"[object Object]"===Object.prototype.toString.call(e)?a(new Error("done() invoked with non-Error: "+JSON.stringify(e))):a(new Error("done() invoked with non-Error: "+e)):t&&ra.isPromise(t)?a(new Error("Resolution method is overspecified. Specify a callback *or* return a Promise; not both.")):void a()}))}(this.fn)}catch(e){if(i=!0,e instanceof Xi)return;if(this.allowUncaught)throw e;a(fa.toValueOrError(e))}}else try{!function(e){var t=e.call(o);if(t&&"function"==typeof t.then)r.resetTimeout(),t.then((function(){return a(),null}),(function(e){a(e||new Error("Promise rejected with no or falsy reason"))}));else{if(r.asyncOnly)return a(new Error("--async-only option in use without declaring `done()` or returning a promise"));a()}}(this.fn)}catch(e){if(i=!0,e instanceof Xi)return a();if(this.allowUncaught)throw e;a(fa.toValueOrError(e))}},fa.prototype._timeoutError=function(e){let t=`Timeout of ${e}ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.`;return this.file&&(t+=" ("+this.file+")"),ia(t,e,this.file)};var pa=ra.defineConstants({STATE_FAILED:"failed",STATE_PASSED:"passed",STATE_PENDING:"pending"});fa.toValueOrError=function(e){return e||na("Runnable failed with falsy or undefined exception. Please throw an Error instead.",e)},fa.constants=pa;var ha={exports:{}},da=la;const{inherits:ga,constants:ya}=Si,{MOCHA_ID_PROP_NAME:ma}=ya;var ba=va;function va(e,t){da.call(this,e,t),this.type="hook"}ga(va,da),va.prototype.reset=function(){da.prototype.reset.call(this),delete this._error},va.prototype.error=function(e){if(!arguments.length)return e=this._error,this._error=null,e;this._error=e},va.prototype.serialize=function(){return{$$currentRetry:this.currentRetry(),$$fullTitle:this.fullTitle(),$$isPending:Boolean(this.isPending()),$$titlePath:this.titlePath(),ctx:this.ctx&&this.ctx.currentTest?{currentTest:{title:this.ctx.currentTest.title,[ma]:this.ctx.currentTest.id}}:{},duration:this.duration,file:this.file,parent:{$$fullTitle:this.parent.fullTitle(),[ma]:this.parent.id},state:this.state,title:this.title,type:this.type,[ma]:this.id}},function(e,t){const{EventEmitter:r}=Oi,n=ba;var{assignNewMochaID:o,clamp:i,constants:a,defineConstants:s,getMochaID:u,inherits:c,isString:l}=Si;const f=ki.exports("mocha:suite"),p=xo,h=Ki,{MOCHA_ID_PROP_NAME:d}=a;function g(e,t,r){if(!l(e))throw h.createInvalidArgumentTypeError('Suite argument "title" must be a string. Received type "'+typeof e+'"',"title","string");function n(){}this.title=e,n.prototype=t,this.ctx=new n,this.suites=[],this.tests=[],this.root=!0===r,this.pending=!1,this._retries=-1,this._beforeEach=[],this._beforeAll=[],this._afterEach=[],this._afterAll=[],this._timeout=2e3,this._slow=75,this._bail=!1,this._onlyTests=[],this._onlySuites=[],o(this),Object.defineProperty(this,"id",{get(){return u(this)}}),this.reset()}e.exports=g,g.create=function(e,t){var r=new g(t,e.ctx);return r.parent=e,t=r.fullTitle(),e.addSuite(r),r},c(g,r),g.prototype.reset=function(){function e(e){e.reset()}this.delayed=!1,this.suites.forEach(e),this.tests.forEach(e),this._beforeEach.forEach(e),this._afterEach.forEach(e),this._beforeAll.forEach(e),this._afterAll.forEach(e)},g.prototype.clone=function(){var e=new g(this.title);return f("clone"),e.ctx=this.ctx,e.root=this.root,e.timeout(this.timeout()),e.retries(this.retries()),e.slow(this.slow()),e.bail(this.bail()),e},g.prototype.timeout=function(e){if(!arguments.length)return this._timeout;"string"==typeof e&&(e=p(e));var t=Math.pow(2,31)-1;return e=i(e,[0,t]),f("timeout %d",e),this._timeout=parseInt(e,10),this},g.prototype.retries=function(e){return arguments.length?(f("retries %d",e),this._retries=parseInt(e,10)||0,this):this._retries},g.prototype.slow=function(e){return arguments.length?("string"==typeof e&&(e=p(e)),f("slow %d",e),this._slow=e,this):this._slow},g.prototype.bail=function(e){return arguments.length?(f("bail %s",e),this._bail=e,this):this._bail},g.prototype.isPending=function(){return this.pending||this.parent&&this.parent.isPending()},g.prototype._createHook=function(e,t){var r=new n(e,t);return r.parent=this,r.timeout(this.timeout()),r.retries(this.retries()),r.slow(this.slow()),r.ctx=this.ctx,r.file=this.file,r},g.prototype.beforeAll=function(e,t){if(this.isPending())return this;"function"==typeof e&&(e=(t=e).name),e='"before all" hook'+(e?": "+e:"");var r=this._createHook(e,t);return this._beforeAll.push(r),this.emit(y.EVENT_SUITE_ADD_HOOK_BEFORE_ALL,r),this},g.prototype.afterAll=function(e,t){if(this.isPending())return this;"function"==typeof e&&(e=(t=e).name),e='"after all" hook'+(e?": "+e:"");var r=this._createHook(e,t);return this._afterAll.push(r),this.emit(y.EVENT_SUITE_ADD_HOOK_AFTER_ALL,r),this},g.prototype.beforeEach=function(e,t){if(this.isPending())return this;"function"==typeof e&&(e=(t=e).name),e='"before each" hook'+(e?": "+e:"");var r=this._createHook(e,t);return this._beforeEach.push(r),this.emit(y.EVENT_SUITE_ADD_HOOK_BEFORE_EACH,r),this},g.prototype.afterEach=function(e,t){if(this.isPending())return this;"function"==typeof e&&(e=(t=e).name),e='"after each" hook'+(e?": "+e:"");var r=this._createHook(e,t);return this._afterEach.push(r),this.emit(y.EVENT_SUITE_ADD_HOOK_AFTER_EACH,r),this},g.prototype.addSuite=function(e){return e.parent=this,e.root=!1,e.timeout(this.timeout()),e.retries(this.retries()),e.slow(this.slow()),e.bail(this.bail()),this.suites.push(e),this.emit(y.EVENT_SUITE_ADD_SUITE,e),this},g.prototype.addTest=function(e){return e.parent=this,e.timeout(this.timeout()),e.retries(this.retries()),e.slow(this.slow()),e.ctx=this.ctx,this.tests.push(e),this.emit(y.EVENT_SUITE_ADD_TEST,e),this},g.prototype.fullTitle=function(){return this.titlePath().join(" ")},g.prototype.titlePath=function(){var e=[];return this.parent&&(e=e.concat(this.parent.titlePath())),this.root||e.push(this.title),e},g.prototype.total=function(){return this.suites.reduce((function(e,t){return e+t.total()}),0)+this.tests.length},g.prototype.eachTest=function(e){return this.tests.forEach(e),this.suites.forEach((function(t){t.eachTest(e)})),this},g.prototype.run=function(){this.root&&this.emit(y.EVENT_ROOT_SUITE_RUN)},g.prototype.hasOnly=function(){return this._onlyTests.length>0||this._onlySuites.length>0||this.suites.some((function(e){return e.hasOnly()}))},g.prototype.filterOnly=function(){if(this._onlyTests.length)this.tests=this._onlyTests,this.suites=[];else{this.tests=[],this._onlySuites.forEach((function(e){e.hasOnly()&&e.filterOnly()}));var e=this._onlySuites;this.suites=this.suites.filter((function(t){return-1!==e.indexOf(t)||t.filterOnly()}))}return this.tests.length>0||this.suites.length>0},g.prototype.appendOnlySuite=function(e){this._onlySuites.push(e)},g.prototype.markOnly=function(){this.parent&&this.parent.appendOnlySuite(this)},g.prototype.appendOnlyTest=function(e){this._onlyTests.push(e)},g.prototype.getHooks=function(e){return this["_"+e]},g.prototype.dispose=function(){this.suites.forEach((function(e){e.dispose()})),this.cleanReferences()},g.prototype.cleanReferences=function(){function e(e){for(var t=0;t-1&&(e.parent.tests[t]=e)}r.checkGlobals(e)})),this.on(Va.EVENT_HOOK_END,(function(e){r.checkGlobals(e)})),this._defaultGrep=/.*/,this.grep(this._defaultGrep),this.globals(this.globalProps()),this.uncaught=this._uncaught.bind(this),this.unhandled=(e,t)=>{if(Fa(e))_a("trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:",e),this.uncaught(e);else{_a("trapped unhandled rejection from (probably) user code; re-emitting on process"),this._removeEventListener(D,"unhandledRejection",this.unhandled);try{D.emit("unhandledRejection",e,t)}finally{this._addEventListener(D,"unhandledRejection",this.unhandled)}}}}}function Ha(e){return e instanceof Error||e&&"string"==typeof e.message}function za(e){return new Error(`the ${Aa.canonicalType(e)} ${qa(e)} was thrown, throw an Error :)`)}Ga.immediately=R.setImmediate||d,Ga.prototype._addEventListener=function(e,t,r){if(_a("_addEventListener(): adding for event %s; %d current listeners",t,e.listenerCount(t)),this._eventListeners.has(e)&&this._eventListeners.get(e).has(t)&&this._eventListeners.get(e).get(t).has(r))return void _a("warning: tried to attach duplicate event listener for %s",t);e.on(t,r);const n=this._eventListeners.has(e)?this._eventListeners.get(e):new Map,o=n.has(t)?n.get(t):new Set;o.add(r),n.set(t,o),this._eventListeners.set(e,n)},Ga.prototype._removeEventListener=function(e,t,r){if(e.removeListener(t,r),this._eventListeners.has(e)){const n=this._eventListeners.get(e);if(n.has(t)){const e=n.get(t);e.delete(r),e.size||n.delete(t)}n.size||this._eventListeners.delete(e)}else _a("trying to remove listener for untracked object %s",e)},Ga.prototype.dispose=function(){this.removeAllListeners(),this._eventListeners.forEach(((e,t)=>{e.forEach(((e,r)=>{e.forEach((e=>{t.removeListener(r,e)}))}))})),this._eventListeners.clear()},Ga.prototype.grep=function(e,t){return _a("grep(): setting to %s",e),this._grep=e,this._invert=t,this.total=this.grepTotal(this.suite),this},Ga.prototype.grepTotal=function(e){var t=this,r=0;return e.eachTest((function(e){var n=t._grep.test(e.fullTitle());t._invert&&(n=!n),n&&r++})),r},Ga.prototype.globalProps=function(){for(var e=Object.keys(R),t=0;t`'${e}'`)).join(", ")}`;this.fail(e,new Error(o))}}},Ga.prototype.fail=function(e,t,r){if(r=!0===r,!e.isPending()||r){if(this.state===Va.STATE_STOPPED){if(t.code===Ba.MULTIPLE_DONE)throw t;throw Ua("Test failed after root suite execution completed!",t)}++this.failures,_a("total number of failures: %d",this.failures),e.state=La,Ha(t)||(t=za(t));try{t.stack=this.fullStackTrace||!t.stack?t.stack:Ca(t.stack)}catch(e){}this.emit(Va.EVENT_TEST_FAIL,e,t)}},Ga.prototype.hook=function(e,t){if(this._opts.dryRun)return t();var r=this.suite,n=r.getHooks(e),o=this;function i(a){var s=n[a];if(!s)return t();function u(e){var t;e.originalTitle=e.originalTitle||e.title,e.ctx&&e.ctx.currentTest?e.title=`${e.originalTitle} for "${e.ctx.currentTest.title}"`:(t=e.parent.title?e.parent.title:e.parent.root?"{root}":"",e.title=`${e.originalTitle} in "${t}"`)}o.currentRunnable=s,s.ctx.currentTest=e===Na?s.parent.tests[0]:e===Ra?s.parent.tests[s.parent.tests.length-1]:o.test,u(s),s.allowUncaught=o.allowUncaught,o.emit(Va.EVENT_HOOK_BEGIN,s),s.listeners("error").length||o._addEventListener(s,"error",(function(e){o.fail(s,e)})),s.run((function(c){var l=s.error();if(l&&o.fail(o.test,l),s.pending)if(e===Da)o.test&&(o.test.pending=!0);else{if(e===xa)return o.test&&(o.test.pending=!0),o.emit(Va.EVENT_HOOK_END,s),s.pending=!1,t(new Error("abort hookDown"));if(e!==Na){s.pending=!1;var f=ja("`this.skip` forbidden");return o.fail(s,f),t(f)}r.tests.forEach((function(e){e.pending=!0})),r.suites.forEach((function(e){e.pending=!0})),n=[]}else if(c)return o.fail(s,c),t(c);o.emit(Va.EVENT_HOOK_END,s),delete s.ctx.currentTest,u(s),i(++a)}))}Ga.immediately((function(){i(0)}))},Ga.prototype.hooks=function(e,t,r){var n=this,o=this.suite;!function i(a){if(n.suite=a,!a)return n.suite=o,r();n.hook(e,(function(e){if(e){var a=n.suite;return n.suite=o,r(e,a)}i(t.pop())}))}(t.pop())},Ga.prototype.hookUp=function(e,t){var r=[this.suite].concat(this.parents()).reverse();this.hooks(e,r,t)},Ga.prototype.hookDown=function(e,t){var r=[this.suite].concat(this.parents());this.hooks(e,r,t)},Ga.prototype.parents=function(){for(var e=this.suite,t=[];e.parent;)e=e.parent,t.push(e);return t},Ga.prototype.runTest=function(e){if(this._opts.dryRun)return Ga.immediately(e);var t=this,r=this.test;if(r){if(this.asyncOnly&&(r.asyncOnly=!0),this._addEventListener(r,"error",(function(e){t.fail(r,e)})),this.allowUncaught)return r.allowUncaught=!0,r.run(e);try{r.run(e)}catch(t){e(t)}}},Ga.prototype.runTests=function(e,t){var r,n=this,o=e.tests.slice();function i(e,r,o){var a=n.suite;n.suite=o?r.parent:r,n.suite?n.hookUp(Da,(function(e,o){if(n.suite=a,e)return i(0,o,!0);t(r)})):(n.suite=a,t(r))}function a(s,u){if(n.failures&&e._bail&&(o=[]),n._abort)return t();if(s)return i(0,u,!0);if(!(r=o.shift()))return t();var c=n._grep.test(r.fullTitle());if(n._invert&&(c=!c),c){if(r.isPending())return n.forbidPending?n.fail(r,new Error("Pending test forbidden"),!0):(r.state=Pa,n.emit(Va.EVENT_TEST_PENDING,r)),n.emit(Va.EVENT_TEST_END,r),a();n.emit(Va.EVENT_TEST_BEGIN,n.test=r),n.hookDown(xa,(function(e,t){if(r.isPending()){n.forbidPending?n.fail(r,new Error("Pending test forbidden"),!0):(r.state=Pa,n.emit(Va.EVENT_TEST_PENDING,r)),n.emit(Va.EVENT_TEST_END,r);var s=n.suite;return n.suite=t||n.suite,n.hookUp(Da,(function(e,t){n.suite=s,a(e,t)}))}if(e)return i(0,t,!1);n.currentRunnable=n.test,n.runTest((function(e){if((r=n.test).pending)return n.forbidPending?n.fail(r,new Error("Pending test forbidden"),!0):(r.state=Pa,n.emit(Va.EVENT_TEST_PENDING,r)),n.emit(Va.EVENT_TEST_END,r),n.hookUp(Da,a);if(e){var t=r.currentRetry();if(t{!this.total&&this._opts.failZero&&(this.failures=1),_a("run(): root suite completed; emitting %s",Va.EVENT_RUN_END),this.emit(Va.EVENT_RUN_END)},i=()=>{_a("run(): emitting %s",Va.EVENT_RUN_BEGIN),this.emit(Va.EVENT_RUN_BEGIN),_a("run(): emitted %s",Va.EVENT_RUN_BEGIN),this.runSuite(r,o)},a=()=>(_a("run(): starting"),r.hasOnly()&&(r.filterOnly(),_a("run(): filtered exclusive Runnables")),this.state=Va.STATE_RUNNING,this._opts.delay&&(this.emit(Va.EVENT_DELAY_END),_a('run(): "delay" ended')),i());return this._opts.cleanReferencesAfterRun&&this.on(Va.EVENT_SUITE_END,(e=>{e.cleanReferences()})),this.on(Va.EVENT_RUN_END,(function(){this.state=Va.STATE_STOPPED,_a("run(): emitted %s",Va.EVENT_RUN_END),e(this.failures)})),this._removeEventListener(D,"uncaughtException",this.uncaught),this._removeEventListener(D,"unhandledRejection",this.unhandled),this._addEventListener(D,"uncaughtException",this.uncaught),this._addEventListener(D,"unhandledRejection",this.unhandled),this._opts.delay?(this.emit(Va.EVENT_DELAY_BEGIN,r),r.once(Oa,a),_a("run(): waiting for green light due to --delay")):Ga.immediately(a),this},Ga.prototype.linkPartialObjects=function(e){return this},Ga.prototype.runAsync=async function(e={}){return new Promise((t=>{this.run(t,e)}))},Ga.prototype.abort=function(){return _a("abort(): aborting"),this._abort=!0,this},Ga.prototype.isParallelMode=function(){return!1},Ga.prototype.workerReporter=function(){throw ja("workerReporter() not supported in serial mode")},Ga.constants=Va;var Ya=Ga;!function(e,t){var r=nn,n=xo,o=Si,i=Ri,a=Ni,s=Ya.constants,u=s.EVENT_TEST_PASS,c=s.EVENT_TEST_FAIL;const l=o.isBrowser();t=e.exports=m;var f=l||D.stdout.isTTY&&D.stderr.isTTY,p=console.log;t.useColors=!l&&(i.stdout||void 0!==D.env.MOCHA_COLORS),t.inlineDiffs=!1,t.maxDiffSize=8192,t.colors={pass:90,fail:31,"bright pass":92,"bright fail":91,"bright yellow":93,pending:36,suite:0,"error title":0,"error message":31,"error stack":90,checkmark:32,fast:90,medium:33,slow:31,green:32,light:90,"diff gutter":90,"diff added":32,"diff removed":31,"diff added inline":"30;42","diff removed inline":"30;41"},t.symbols={ok:a.success,err:a.error,dot:".",comma:",",bang:"!"};var h=t.color=function(e,r){return t.useColors?"["+t.colors[e]+"m"+r+"":String(r)};t.window={width:75},f&&(t.window.width=l?("innerHeight"in R?[R.innerHeight,R.innerWidth]:[640,480])[1]:D.stdout.getWindowSize(1)[0]),t.cursor={hide:function(){f&&D.stdout.write("[?25l")},show:function(){f&&D.stdout.write("[?25h")},deleteLine:function(){f&&D.stdout.write("")},beginningOfLine:function(){f&&D.stdout.write("")},CR:function(){f?(t.cursor.deleteLine(),t.cursor.beginningOfLine()):D.stdout.write("\r")}};var d=t.showDiff=function(e){return e&&!1!==e.showDiff&&(t=e.actual,r=e.expected,v.call(t)===v.call(r))&&void 0!==e.expected;var t,r};function g(e){o.isString(e.actual)&&o.isString(e.expected)||(e.actual=o.stringify(e.actual),e.expected=o.stringify(e.expected))}var y=t.generateDiff=function(e,n){try{var o=t.maxDiffSize,i=0;o>0&&(i=Math.max(e.length-o,n.length-o),e=e.slice(0,o),n=n.slice(0,o));let a=t.inlineDiffs?function(e,t){var n=function(e,t){return r.diffWordsWithSpace(e,t).map((function(e){return e.added?b("diff added inline",e.value):e.removed?b("diff removed inline",e.value):e.value})).join("")}(e,t),o=n.split("\n");if(o.length>4){var i=String(o.length).length;n=o.map((function(e,t){return function(e,t){return e=String(e),Array(t-e.length+1).join(" ")+e}(++t,i)+" | "+e})).join("\n")}return(n="\n"+h("diff removed inline","actual")+" "+h("diff added inline","expected")+"\n\n"+n+"\n").replace(/^/gm," ")}(e,n):function(e,t){var n=" ";function o(e){return"+"===e[0]?n+b("diff added",e):"-"===e[0]?n+b("diff removed",e):e.match(/@@/)?"--":e.match(/\\ No newline/)?null:n+e}function i(e){return null!=e}var a=r.createPatch("string",e,t).split("\n").splice(5);return"\n "+b("diff added","+ expected")+" "+b("diff removed","- actual")+"\n\n"+a.map(o).filter(i).join("\n")}(e,n);return i>0&&(a=`${a}\n [mocha] output truncated to ${o} characters, see "maxDiffSize" reporter-option\n`),a}catch(e){return"\n "+h("diff added","+ expected")+" "+h("diff removed","- actual: failed to generate Mocha diff")+"\n"}};function m(e,r){var n=this.failures=[];if(!e)throw new TypeError("Missing runner argument");this.options=r||{},this.runner=e,this.stats=e.stats;var o=this.options.reporterOption&&this.options.reporterOption.maxDiffSize;void 0===o||isNaN(Number(o))||(t.maxDiffSize=Number(o)),e.on(u,(function(e){e.duration>e.slow()?e.speed="slow":e.duration>e.slow()/2?e.speed="medium":e.speed="fast"})),e.on(c,(function(e,t){d(t)&&g(t),e.err&&t instanceof Error?e.err.multiple=(e.err.multiple||[]).concat(t):e.err=t,n.push(e)}))}function b(e,t){return t.split("\n").map((function(t){return h(e,t)})).join("\n")}t.list=function(e){var r,n;m.consoleLog(),e.forEach((function(e,o){var i,a,s,u=h("error title"," %s) %s:\n")+h("error message"," %s")+h("error stack","\n%s\n");e.err&&e.err.multiple?(n!==e&&(n=e,r=[e.err].concat(e.err.multiple)),a=r.shift()):a=e.err,s="function"==typeof a.inspect?a.inspect()+"":a.message&&"function"==typeof a.message.toString?a.message+"":"";var c=a.stack||s,l=s?c.indexOf(s):-1;if(-1===l?i=s:(l+=s.length,i=c.slice(0,l),c=c.slice(l+1)),a.uncaught&&(i="Uncaught "+i),!t.hideDiff&&d(a)){g(a),u=h("error title"," %s) %s:\n%s")+h("error stack","\n%s\n");var f=s.match(/^([^:]+): expected/);i="\n "+h("error message",f?f[1]:i),i+=y(a.actual,a.expected)}c=c.replace(/^/gm," ");var p="";e.titlePath().forEach((function(e,t){0!==t&&(p+="\n ");for(var r=0;r',c()),++o,r.consoleLog("%s

    %s

    ",c(),n.escape(e.title)),r.consoleLog("%s
    ",c()))})),e.on(u,(function(e){e.root||(r.consoleLog("%s
    ",c()),--o,r.consoleLog("%s",c()),--o)})),e.on(i,(function(e){r.consoleLog("%s
    %s
    ",c(),n.escape(e.title)),r.consoleLog("%s
    %s
    ",c(),n.escape(e.file));var t=n.escape(n.clean(e.body));r.consoleLog("%s
    %s
    ",c(),t)})),e.on(a,(function(e,t){r.consoleLog('%s
    %s
    ',c(),n.escape(e.title)),r.consoleLog('%s
    %s
    ',c(),n.escape(e.file));var o=n.escape(n.clean(e.body));r.consoleLog('%s
    %s
    ',c(),o),r.consoleLog('%s
    %s
    ',c(),n.escape(t))}))}e.exports=c,c.description="HTML documentation"}(Wa);var Ja={exports:{}};!function(e,t){var r=Cr,n=rn.exports,o=Ya.constants,i=o.EVENT_TEST_PASS,a=o.EVENT_TEST_FAIL,s=o.EVENT_RUN_BEGIN,u=o.EVENT_RUN_END,c=o.EVENT_TEST_PENDING,l=o.EVENT_TEST_END,f=Si.inherits,p=r.format;function h(e,t){n.call(this,e,t);var r=this,o=1,f="12";t&&t.reporterOptions&&t.reporterOptions.tapVersion&&(f=t.reporterOptions.tapVersion.toString()),this._producer=function(e){var t={12:new m,13:new b}[e];if(!t)throw new Error("invalid or unsupported TAP version: "+JSON.stringify(e));return t}(f),e.once(s,(function(){r._producer.writeVersion()})),e.on(l,(function(){++o})),e.on(c,(function(e){r._producer.writePending(o,e)})),e.on(i,(function(e){r._producer.writePass(o,e)})),e.on(a,(function(e,t){r._producer.writeFail(o,e,t)})),e.once(u,(function(){r._producer.writeEpilogue(e.stats)}))}function d(e){return e.fullTitle().replace(/#/g,"")}function g(e,t){var r=Array.from(arguments);r[0]+="\n",D.stdout.write(p.apply(null,r))}function y(){}function m(){this.writeFail=function(e,t,r){y.prototype.writeFail.call(this,e,t,r),r.message&&g(r.message.replace(/^/gm," ")),r.stack&&g(r.stack.replace(/^/gm," "))}}function b(){function e(e){return Array(e+1).join(" ")}this.writeVersion=function(){g("TAP version 13")},this.writeFail=function(t,r,n){y.prototype.writeFail.call(this,t,r,n),(null!=n.message||null!=n.stack)&&(g(e(1)+"---"),n.message&&(g(e(2)+"message: |-"),g(n.message.replace(/^/gm,e(3)))),n.stack&&(g(e(2)+"stack: |-"),g(n.stack.replace(/^/gm,e(3)))),g(e(1)+"..."))}}e.exports=h,f(h,n),y.prototype.writeVersion=function(){},y.prototype.writePlan=function(e){g("%d..%d",1,e)},y.prototype.writePass=function(e,t){g("ok %d %s",e,d(t))},y.prototype.writePending=function(e,t){g("ok %d %s # SKIP -",e,d(t))},y.prototype.writeFail=function(e,t,r){g("not ok %d %s",e,d(t))},y.prototype.writeEpilogue=function(e){g("# tests "+(e.passes+e.failures)),g("# pass "+e.passes),g("# fail "+e.failures),this.writePlan(e.passes+e.failures+e.pending)},f(m,y),f(b,y),h.description="TAP-compatible output"}(Ja);var Za={exports:{}},Ka=N(Object.freeze({__proto__:null,default:{}}));!function(e,t){var r=rn.exports,n=Ka,o=en;const i=Ki.createUnsupportedError,a=Si;var s=Ya.constants,u=s.EVENT_TEST_PASS,c=s.EVENT_TEST_PENDING,l=s.EVENT_TEST_FAIL,f=s.EVENT_TEST_END,p=s.EVENT_RUN_END;function h(e,t={}){r.call(this,e,t);var s,h=this,g=[],y=[],m=[],b=[];if(t.reporterOption&&t.reporterOption.output){if(a.isBrowser())throw i("file output not supported in browser");s=t.reporterOption.output}e.on(f,(function(e){g.push(e)})),e.on(u,(function(e){b.push(e)})),e.on(l,(function(e){m.push(e)})),e.on(c,(function(e){y.push(e)})),e.once(p,(function(){var t={stats:h.stats,tests:g.map(d),pending:y.map(d),failures:m.map(d),passes:b.map(d)};e.testResults=t;var i=JSON.stringify(t,null,2);if(s)try{n.mkdirSync(o.dirname(s),{recursive:!0}),n.writeFileSync(s,i)}catch(e){console.error(`${r.symbols.err} [mocha] writing output to "${s}" failed: ${e.message}\n`),D.stdout.write(i)}else D.stdout.write(i)}))}function d(e){var t=e.err||{};return t instanceof Error&&(t=function(e){var t={};return Object.getOwnPropertyNames(e).forEach((function(r){t[r]=e[r]}),e),t}(t)),{title:e.title,fullTitle:e.fullTitle(),file:e.file,duration:e.duration,currentRetry:e.currentRetry(),speed:e.speed,err:g(t)}}function g(e){var t=[];return JSON.parse(JSON.stringify(e,(function(e,r){if("object"==typeof r&&null!==r){if(-1!==t.indexOf(r))return""+r;t.push(r)}return r})))}e.exports=h,h.description="single JSON object"}(Za);var Qa={exports:{}},Xa=es;function es(){this.percent=0,this.size(0),this.fontSize(11),this.font("helvetica, arial, sans-serif")}es.prototype.size=function(e){return this._size=e,this},es.prototype.text=function(e){return this._text=e,this},es.prototype.fontSize=function(e){return this._fontSize=e,this},es.prototype.font=function(e){return this._font=e,this},es.prototype.update=function(e){return this.percent=e,this},es.prototype.draw=function(e){try{var t=window.matchMedia("(prefers-color-scheme: dark)").matches?{outerCircle:"#888",innerCircle:"#444",text:"#fff"}:{outerCircle:"#9f9f9f",innerCircle:"#eee",text:"#000"},r=Math.min(this.percent,100),n=this._size,o=n/2,i=o,a=o,s=o-1,u=this._fontSize;e.font=u+"px "+this._font;var c=2*Math.PI*(r/100);e.clearRect(0,0,n,n),e.strokeStyle=t.outerCircle,e.beginPath(),e.arc(i,a,s,0,c,!1),e.stroke(),e.strokeStyle=t.innerCircle,e.beginPath(),e.arc(i,a,s-1,0,c,!0),e.stroke();var l=this._text||(0|r)+"%",f=e.measureText(l).width;e.fillStyle=t.text,e.fillText(l,i-f/2+1,a+u/2-1)}catch(e){}return this},function(e,t){var r=rn.exports,n=Si,o=Xa,i=Fr,a=Ya.constants,s=a.EVENT_TEST_PASS,u=a.EVENT_TEST_FAIL,c=a.EVENT_SUITE_BEGIN,l=a.EVENT_SUITE_END,f=a.EVENT_TEST_PENDING,p=n.escape,h=R.Date;e.exports=y;var d='',g="‣";function y(e,t){r.call(this,e,t);var n,i,a,y=this,m=this.stats,_=b(d),T=_.getElementsByTagName("li"),S=T[1].getElementsByTagName("em")[0],x=T[1].getElementsByTagName("a")[0],D=T[2].getElementsByTagName("em")[0],R=T[2].getElementsByTagName("a")[0],N=T[3].getElementsByTagName("em")[0],O=_.getElementsByTagName("canvas")[0],L=b('
      '),k=[L],P=document.getElementById("mocha");if(O.getContext){var C=window.devicePixelRatio||1;O.style.width=O.width,O.style.height=O.height,O.width*=C,O.height*=C,(i=O.getContext("2d")).scale(C,C),n=new o}if(!P)return a="#mocha div missing, add it to your document",void document.body.appendChild(b('
      %s
      ',a));function q(e){k[0]&&k[0].appendChild(e)}function I(){var t=m.tests/e.total*100|0;n&&n.update(t).draw(i);var r=new h-m.start;E(S,m.passes),E(D,m.failures),E(N,(r/1e3).toFixed(2))}A(x,"click",(function(e){e.preventDefault(),w();var t=/pass/.test(L.className)?"":" pass";L.className=L.className.replace(/fail|pass/g,"")+t,L.className.trim()&&v("test pass")})),A(R,"click",(function(e){e.preventDefault(),w();var t=/fail/.test(L.className)?"":" fail";L.className=L.className.replace(/fail|pass/g,"")+t,L.className.trim()&&v("test fail")})),P.appendChild(_),P.appendChild(L),n&&n.size(40),e.on(c,(function(e){if(!e.root){var t=b('
    • %s

    • ',y.suiteURL(e),p(e.title));k[0].appendChild(t),k.unshift(document.createElement("ul")),t.appendChild(k[0])}})),e.on(l,(function(e){e.root?I():k.shift()})),e.on(s,(function(e){var t=y.testURL(e),r=b('
    • %e%ems '+g+"

    • ",e.speed,e.title,e.duration,t);y.addCodeToggle(r,e.body),q(r),I()})),e.on(u,(function(e){var t,r=b('
    • %e '+g+"

    • ",e.title,y.testURL(e)),n=e.err.toString();if("[object Error]"===n&&(n=e.err.message),e.err.stack){var o=e.err.stack.indexOf(e.err.message);t=-1===o?e.err.stack:e.err.stack.slice(e.err.message.length+o)}else e.err.sourceURL&&void 0!==e.err.line&&(t="\n("+e.err.sourceURL+":"+e.err.line+")");t=t||"",e.err.htmlMessage&&t?r.appendChild(b('
      %s\n
      %e
      ',e.err.htmlMessage,t)):e.err.htmlMessage?r.appendChild(b('
      %s
      ',e.err.htmlMessage)):r.appendChild(b('
      %e%e
      ',n,t)),y.addCodeToggle(r,e.body),q(r),I()})),e.on(f,(function(e){q(b('
    • %e

    • ',e.title)),I()}))}function m(e){var t=window.location.search;return t&&(t=t.replace(/[?&]grep=[^&\s]*/g,"").replace(/^&/,"?")),window.location.pathname+(t?t+"&":"?")+"grep="+encodeURIComponent(i(e))}function b(e){var t=arguments,r=document.createElement("div"),n=1;return r.innerHTML=e.replace(/%([se])/g,(function(e,r){switch(r){case"s":return String(t[n++]);case"e":return p(t[n++])}})),r.firstChild}function v(e){for(var t=document.getElementsByClassName("suite"),r=0;r0;)e[0].className=e[0].className.replace("suite hidden","suite")}function E(e,t){e.textContent?e.textContent=t:e.innerText=t}function A(e,t,r){e.addEventListener?e.addEventListener(t,r,!1):e.attachEvent("on"+t,r)}y.prototype.suiteURL=function(e){return m(e.fullTitle())},y.prototype.testURL=function(e){return m(e.fullTitle())},y.prototype.addCodeToggle=function(e,t){A(e.getElementsByTagName("h2")[0],"click",(function(){r.style.display="none"===r.style.display?"block":"none"}));var r=b("
      %e
      ",n.clean(t));e.appendChild(r),r.style.display="none"},y.browserOnly=!0}(Qa);var ts={exports:{}};!function(e,t){var r=rn.exports,n=Si.inherits,o=Ya.constants,i=o.EVENT_RUN_BEGIN,a=o.EVENT_RUN_END,s=o.EVENT_TEST_BEGIN,u=o.EVENT_TEST_FAIL,c=o.EVENT_TEST_PASS,l=o.EVENT_TEST_PENDING,f=r.color,p=r.cursor;function h(e,t){r.call(this,e,t);var n=0;e.on(i,(function(){r.consoleLog()})),e.on(s,(function(e){D.stdout.write(f("pass"," "+e.fullTitle()+": "))})),e.on(l,(function(e){var t=f("checkmark"," -")+f("pending"," %s");r.consoleLog(t,e.fullTitle())})),e.on(c,(function(e){var t=f("checkmark"," "+r.symbols.ok)+f("pass"," %s: ")+f(e.speed,"%dms");p.CR(),r.consoleLog(t,e.fullTitle(),e.duration)})),e.on(u,(function(e){p.CR(),r.consoleLog(f("fail"," %d) %s"),++n,e.fullTitle())})),e.once(a,this.epilogue.bind(this))}e.exports=h,n(h,r),h.description='like "spec" reporter but flat'}(ts);var rs={exports:{}};!function(e,t){var r=rn.exports,n=Si.inherits,o=Ya.constants,i=o.EVENT_RUN_END,a=o.EVENT_RUN_BEGIN;function s(e,t){r.call(this,e,t),e.on(a,(function(){D.stdout.write(""),D.stdout.write("")})),e.once(i,this.epilogue.bind(this))}e.exports=s,n(s,r),s.description="essentially just a summary"}(rs);var ns={exports:{}};!function(e,t){var r=rn.exports,n=Ya.constants,o=n.EVENT_RUN_BEGIN,i=n.EVENT_RUN_END,a=n.EVENT_SUITE_BEGIN,s=n.EVENT_SUITE_END,u=n.EVENT_TEST_FAIL,c=n.EVENT_TEST_PASS,l=n.EVENT_TEST_PENDING,f=Si.inherits,p=r.color;function h(e,t){r.call(this,e,t);var n=0,f=0;function h(){return Array(n).join(" ")}e.on(o,(function(){r.consoleLog()})),e.on(a,(function(e){++n,r.consoleLog(p("suite","%s%s"),h(),e.title)})),e.on(s,(function(){1==--n&&r.consoleLog()})),e.on(l,(function(e){var t=h()+p("pending"," - %s");r.consoleLog(t,e.title)})),e.on(c,(function(e){var t;"fast"===e.speed?(t=h()+p("checkmark"," "+r.symbols.ok)+p("pass"," %s"),r.consoleLog(t,e.title)):(t=h()+p("checkmark"," "+r.symbols.ok)+p("pass"," %s")+p(e.speed," (%dms)"),r.consoleLog(t,e.title,e.duration))})),e.on(u,(function(e){r.consoleLog(h()+p("fail"," %d) %s"),++f,e.title)})),e.once(i,this.epilogue.bind(this))}e.exports=h,f(h,r),h.description="hierarchical & verbose [default]"}(ns);var os={exports:{}};!function(e,t){var r=rn.exports,n=Ya.constants,o=Si.inherits,i=n.EVENT_RUN_BEGIN,a=n.EVENT_TEST_PENDING,s=n.EVENT_TEST_PASS,u=n.EVENT_RUN_END,c=n.EVENT_TEST_FAIL;function l(e,t){r.call(this,e,t);var n=this,o=.75*r.window.width|0,l=this.nyanCatWidth=11;this.colorIndex=0,this.numberOfLines=4,this.rainbowColors=n.generateColors(),this.scoreboardWidth=5,this.tick=0,this.trajectories=[[],[],[],[]],this.trajectoryWidthMax=o-l,e.on(i,(function(){r.cursor.hide(),n.draw()})),e.on(a,(function(){n.draw()})),e.on(s,(function(){n.draw()})),e.on(c,(function(){n.draw()})),e.once(u,(function(){r.cursor.show();for(var e=0;e=this.trajectoryWidthMax&&n.shift(),n.push(t)}},l.prototype.drawRainbow=function(){var e=this;this.trajectories.forEach((function(t){f("["+e.scoreboardWidth+"C"),f(t.join("")),f("\n")})),this.cursorUp(this.numberOfLines)},l.prototype.drawNyanCat=function(){var e=this,t="["+(this.scoreboardWidth+this.trajectories[0].length)+"C",r="";f(t),f("_,------,"),f("\n"),f(t),f("_|"+(r=e.tick?" ":" ")+"/\\_/\\ "),f("\n"),f(t),r=e.tick?"_":"__",f((e.tick?"~":"^")+"|"+r+this.face()+" "),f("\n"),f(t),f((r=e.tick?" ":" ")+'"" "" '),f("\n"),this.cursorUp(this.numberOfLines)},l.prototype.face=function(){var e=this.stats;return e.failures?"( x .x)":e.pending?"( o .o)":e.passes?"( ^ .^)":"( - .-)"},l.prototype.cursorUp=function(e){f("["+e+"A")},l.prototype.cursorDown=function(e){f("["+e+"B")},l.prototype.generateColors=function(){for(var e=[],t=0;t<42;t++){var r=Math.floor(Math.PI/3),n=t*(1/6),o=Math.floor(3*Math.sin(n)+3),i=Math.floor(3*Math.sin(n+2*r)+3),a=Math.floor(3*Math.sin(n+4*r)+3);e.push(36*o+6*i+a+16)}return e},l.prototype.rainbowify=function(e){if(!r.useColors)return e;var t=this.rainbowColors[this.colorIndex%this.rainbowColors.length];return this.colorIndex+=1,"[38;5;"+t+"m"+e+""},l.description='"nyan cat"'}(os);var is={exports:{}};!function(e,t){var r=rn.exports,n=Si,o=Ka,i=en,a=Ki.createUnsupportedError,s=Ya.constants,u=s.EVENT_TEST_PASS,c=s.EVENT_TEST_FAIL,l=s.EVENT_RUN_END,f=s.EVENT_TEST_PENDING,p=la.constants.STATE_FAILED,h=n.inherits,d=n.escape,g=R.Date;function y(e,t){r.call(this,e,t);var n,s=this.stats,p=[],h=this;if(t&&t.reporterOptions){if(t.reporterOptions.output){if(!o.createWriteStream)throw a("file output not supported in browser");o.mkdirSync(i.dirname(t.reporterOptions.output),{recursive:!0}),h.fileStream=o.createWriteStream(t.reporterOptions.output)}n=t.reporterOptions.suiteName}n=n||"Mocha Tests",e.on(f,(function(e){p.push(e)})),e.on(u,(function(e){p.push(e)})),e.on(c,(function(e){p.push(e)})),e.once(l,(function(){h.write(m("testsuite",{name:n,tests:s.tests,failures:0,errors:s.failures,skipped:s.tests-s.failures-s.passes,timestamp:(new g).toUTCString(),time:s.duration/1e3||0},!1)),p.forEach((function(e){h.test(e)})),h.write("")}))}function m(e,t,r,n){var o,i=r?"/>":">",a=[];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&a.push(s+'="'+d(t[s])+'"');return o="<"+e+(a.length?" "+a.join(" "):"")+i,n&&(o+=n+"\n',l+=(t=e.title,Array(o).join("#")+" "+t+"\n")})),e.on(s,(function(){--o})),e.on(u,(function(e){var t=n.clean(e.body);l+=e.title+".\n",l+="\n```js\n",l+=t+"\n",l+="```\n\n"})),e.once(i,(function(){D.stdout.write("# TOC\n"),D.stdout.write(h(e.suite)),D.stdout.write(l)}))}e.exports=l,l.description="GitHub Flavored Markdown"}(as);var ss={exports:{}};!function(e,t){var r=rn.exports,n=Ya.constants,o=n.EVENT_RUN_BEGIN,i=n.EVENT_TEST_END,a=n.EVENT_RUN_END,s=Si.inherits,u=r.color,c=r.cursor;function l(e,t){r.call(this,e,t);var n=this,s=.5*r.window.width|0,l=e.total,f=0,p=-1,h=(t=t||{}).reporterOptions||{};t.open=h.open||"[",t.complete=h.complete||"▬",t.incomplete=h.incomplete||r.symbols.dot,t.close=h.close||"]",t.verbose=h.verbose||!1,e.on(o,(function(){D.stdout.write("\n"),c.hide()})),e.on(i,(function(){f++;var e=s*(f/l)|0,r=s-e;(e!==p||t.verbose)&&(p=e,c.CR(),D.stdout.write(""),D.stdout.write(u("progress"," "+t.open)),D.stdout.write(Array(e).join(t.complete)),D.stdout.write(Array(r).join(t.incomplete)),D.stdout.write(u("progress",t.close)),t.verbose&&D.stdout.write(u("progress"," "+f+" of "+l)))})),e.once(a,(function(){c.show(),D.stdout.write("\n"),n.epilogue()}))}e.exports=l,r.colors.progress=90,s(l,r),l.description="a progress bar"}(ss);var us={exports:{}};!function(e,t){var r=rn.exports,n=Si.inherits,o=Ya.constants,i=o.EVENT_RUN_BEGIN,a=o.EVENT_RUN_END,s=o.EVENT_TEST_END,u=la.constants.STATE_FAILED,c=r.cursor,l=r.color;function f(e,t){r.call(this,e,t);var n=this,o=.75*r.window.width|0,f=D.stdout,p=l("plane","✈"),h=-1,g=0,y=0;function m(){var e=Array(o).join("-");return" "+l("runway",e)}e.on(i,(function(){f.write("\n\n\n "),c.hide()})),e.on(s,(function(e){var t=-1===h?o*++g/++y|0:h;e.state===u&&(p=l("plane crash","✈"),h=t),f.write("["+(o+1)+"D"),f.write(m()),f.write("\n "),f.write(l("runway",Array(t).join("⋅"))),f.write(p),f.write(l("runway",Array(o-t).join("⋅")+"\n")),f.write(m()),f.write("")})),e.once(a,(function(){c.show(),D.stdout.write("\n"),n.epilogue()})),D.once("SIGINT",(function(){c.show(),d((function(){D.kill(D.pid,"SIGINT")}))}))}e.exports=f,r.colors.plane=0,r.colors["plane crash"]=31,r.colors.runway=90,n(f,r),f.description="Unicode landing strip"}(us);var cs={exports:{}};(function(e,t){var r=rn.exports,n=Ya.constants,o=n.EVENT_TEST_PASS,i=n.EVENT_TEST_FAIL,a=n.EVENT_RUN_BEGIN,s=n.EVENT_RUN_END;function u(e,t){r.call(this,e,t);var n=this,u=e.total;e.once(a,(function(){c(["start",{total:u}])})),e.on(o,(function(e){c(["pass",l(e)])})),e.on(i,(function(e,t){(e=l(e)).err=t.message,e.stack=t.stack||null,c(["fail",e])})),e.once(s,(function(){c(["end",n.stats])}))}function c(e){D.stdout.write(JSON.stringify(e)+"\n")}function l(e){return{title:e.title,fullTitle:e.fullTitle(),file:e.file,duration:e.duration,currentRetry:e.currentRetry(),speed:e.speed}}e.exports=u,u.description="newline delimited JSON events"})(cs),function(e){e.Base=e.base=rn.exports,e.Dot=e.dot=$a.exports,e.Doc=e.doc=Wa.exports,e.TAP=e.tap=Ja.exports,e.JSON=e.json=Za.exports,e.HTML=e.html=Qa.exports,e.List=e.list=ts.exports,e.Min=e.min=rs.exports,e.Spec=e.spec=ns.exports,e.Nyan=e.nyan=os.exports,e.XUnit=e.xunit=is.exports,e.Markdown=e.markdown=as.exports,e.Progress=e.progress=ss.exports,e.Landing=e.landing=us.exports,e.JSONStream=e["json-stream"]=cs.exports}(tn);var ls={diff:!0,extension:["js","cjs","mjs"],package:"./package.json",reporter:"spec",slow:75,timeout:2e3,ui:"bdd","watch-ignore":["node_modules",".git"]},fs=Ya.constants,ps=fs.EVENT_TEST_PASS,hs=fs.EVENT_TEST_FAIL,ds=fs.EVENT_SUITE_BEGIN,gs=fs.EVENT_RUN_BEGIN,ys=fs.EVENT_TEST_PENDING,ms=fs.EVENT_RUN_END,bs=fs.EVENT_TEST_END,vs=R.Date;var ws=function(e){var t={suites:0,tests:0,passes:0,pending:0,failures:0};if(!e)throw new TypeError("Missing runner argument");e.stats=t,e.once(gs,(function(){t.start=new vs})),e.on(ds,(function(e){e.root||t.suites++})),e.on(ps,(function(){t.passes++})),e.on(hs,(function(){t.failures++})),e.on(ys,(function(){t.pending++})),e.on(bs,(function(){t.tests++})),e.once(ms,(function(){t.end=new vs,t.duration=t.end-t.start}))},Es={},As={exports:{}},_s=la,Ts=Si,Ss=Ki.createInvalidArgumentTypeError,xs=Ts.isString;const{MOCHA_ID_PROP_NAME:Ds}=Ts.constants;var Rs=Ns;function Ns(e,t){if(!xs(e))throw Ss('Test argument "title" should be a string. Received type "'+typeof e+'"',"title","string");this.type="test",_s.call(this,e,t),this.reset()}Ts.inherits(Ns,_s),Ns.prototype.reset=function(){_s.prototype.reset.call(this),this.pending=!this.fn,delete this.state},Ns.prototype.retriedTest=function(e){if(!arguments.length)return this._retriedTest;this._retriedTest=e},Ns.prototype.markOnly=function(){this.parent.appendOnlyTest(this)},Ns.prototype.clone=function(){var e=new Ns(this.title,this.fn);return e.timeout(this.timeout()),e.slow(this.slow()),e.retries(this.retries()),e.currentRetry(this.currentRetry()),e.retriedTest(this.retriedTest()||this),e.globals(this.globals()),e.parent=this.parent,e.file=this.file,e.ctx=this.ctx,e},Ns.prototype.serialize=function(){return{$$currentRetry:this._currentRetry,$$fullTitle:this.fullTitle(),$$isPending:Boolean(this.pending),$$retriedTest:this._retriedTest||null,$$slow:this._slow,$$titlePath:this.titlePath(),body:this.body,duration:this.duration,err:this.err,parent:{$$fullTitle:this.parent.fullTitle(),[Ds]:this.parent.id},speed:this.speed,state:this.state,title:this.title,type:this.type,file:this.file,[Ds]:this.id}};var Os=ha.exports,Ls=Ki.createMissingArgumentError,ks=Ki.createUnsupportedError,Ps=Ki.createForbiddenExclusivityError,Cs=function(e,t,r){return{runWithSuite:function(e){return function(){e.run()}},before:function(t,r){e[0].beforeAll(t,r)},after:function(t,r){e[0].afterAll(t,r)},beforeEach:function(t,r){e[0].beforeEach(t,r)},afterEach:function(t,r){e[0].afterEach(t,r)},suite:{only:function(e){if(r.options.forbidOnly)throw Ps(r);return e.isOnly=!0,this.create(e)},skip:function(e){return e.pending=!0,this.create(e)},create:function(t){var n=Os.create(e[0],t.title);if(n.pending=Boolean(t.pending),n.file=t.file,e.unshift(n),t.isOnly&&n.markOnly(),n.pending&&r.options.forbidPending&&function(e){return!r.options.grep||r.options.grep&&r.options.grep.test(e.fullTitle())&&!r.options.invert}(n))throw ks("Pending test forbidden");if("function"==typeof t.fn)t.fn.call(n),e.shift();else{if(void 0===t.fn&&!n.pending)throw Ls('Suite "'+n.fullTitle()+'" was defined but no callback was supplied. Supply a callback or explicitly skip the suite.',"callback","function");!t.fn&&n.pending&&e.shift()}return n}},test:{only:function(e,t){if(e.options.forbidOnly)throw Ps(e);return t.markOnly(),t},skip:function(e){t.test(e)}}}},qs=Rs,Is=ha.exports.constants.EVENT_FILE_PRE_REQUIRE;As.exports=function(e){var t=[e];e.on(Is,(function(r,n,o){var i=Cs(t,r,o);r.before=i.before,r.after=i.after,r.beforeEach=i.beforeEach,r.afterEach=i.afterEach,r.run=o.options.delay&&i.runWithSuite(e),r.describe=r.context=function(e,t){return i.suite.create({title:e,file:n,fn:t})},r.xdescribe=r.xcontext=r.describe.skip=function(e,t){return i.suite.skip({title:e,file:n,fn:t})},r.describe.only=function(e,t){return i.suite.only({title:e,file:n,fn:t})},r.it=r.specify=function(e,r){var o=t[0];o.isPending()&&(r=null);var i=new qs(e,r);return i.file=n,o.addTest(i),i},r.it.only=function(e,t){return i.test.only(o,r.it(e,t))},r.xit=r.xspecify=r.it.skip=function(e){return r.it(e)}}))},As.exports.description="BDD or RSpec style [default]";var js={exports:{}},Us=Rs,Fs=ha.exports.constants.EVENT_FILE_PRE_REQUIRE;js.exports=function(e){var t=[e];e.on(Fs,(function(r,n,o){var i=Cs(t,r,o);r.setup=i.beforeEach,r.teardown=i.afterEach,r.suiteSetup=i.before,r.suiteTeardown=i.after,r.run=o.options.delay&&i.runWithSuite(e),r.suite=function(e,t){return i.suite.create({title:e,file:n,fn:t})},r.suite.skip=function(e,t){return i.suite.skip({title:e,file:n,fn:t})},r.suite.only=function(e,t){return i.suite.only({title:e,file:n,fn:t})},r.test=function(e,r){var o=t[0];o.isPending()&&(r=null);var i=new Us(e,r);return i.file=n,o.addTest(i),i},r.test.only=function(e,t){return i.test.only(o,r.test(e,t))},r.test.skip=i.test.skip}))},js.exports.description='traditional "suite"/"test" instead of BDD\'s "describe"/"it"';var Bs={exports:{}},Ms=Rs,Vs=ha.exports.constants.EVENT_FILE_PRE_REQUIRE;Bs.exports=function(e){var t=[e];e.on(Vs,(function(r,n,o){var i=Cs(t,r,o);r.before=i.before,r.after=i.after,r.beforeEach=i.beforeEach,r.afterEach=i.afterEach,r.run=o.options.delay&&i.runWithSuite(e),r.suite=function(e){return t.length>1&&t.shift(),i.suite.create({title:e,file:n,fn:!1})},r.suite.only=function(e){return t.length>1&&t.shift(),i.suite.only({title:e,file:n,fn:!1})},r.test=function(e,r){var o=new Ms(e,r);return o.file=n,t[0].addTest(o),o},r.test.only=function(e,t){return i.test.only(o,r.test(e,t))},r.test.skip=i.test.skip}))},Bs.exports.description="QUnit style";var Gs={exports:{}},Hs=ha.exports,zs=Rs;Gs.exports=function(e){var t=[e];e.on(Hs.constants.EVENT_FILE_REQUIRE,(function e(r,n){var o;for(var i in r)if("function"==typeof r[i]){var a=r[i];switch(i){case"before":t[0].beforeAll(a);break;case"after":t[0].afterAll(a);break;case"beforeEach":t[0].beforeEach(a);break;case"afterEach":t[0].afterEach(a);break;default:var s=new zs(i,a);s.file=n,t[0].addTest(s)}}else o=Hs.create(t[0],i),t.unshift(o),e(r[i],n),t.shift()}))},Gs.exports.description='Node.js module ("exports") style',Es.bdd=As.exports,Es.tdd=js.exports,Es.qunit=Bs.exports,Es.exports=Gs.exports;var Ys=$s;function $s(){}$s.prototype.runnable=function(e){return arguments.length?(this.test=this._runnable=e,this):this._runnable},$s.prototype.timeout=function(e){return arguments.length?(this.runnable().timeout(e),this):this.runnable().timeout()},$s.prototype.slow=function(e){return arguments.length?(this.runnable().slow(e),this):this.runnable().slow()},$s.prototype.skip=function(){this.runnable().skip()},$s.prototype.retries=function(e){return arguments.length?(this.runnable().retries(e),this):this.runnable().retries()};var Ws="10.2.0";(function(e,t){var n=Fr,o=en,i=tn,a=Si,s=ls,u=ha.exports,c=Ri,l=ws;const{createInvalidReporterError:f,createInvalidInterfaceError:p,createMochaInstanceAlreadyDisposedError:h,createMochaInstanceAlreadyRunningError:d,createUnsupportedError:g}=Ki,{EVENT_FILE_PRE_REQUIRE:y,EVENT_FILE_POST_REQUIRE:m,EVENT_FILE_REQUIRE:b}=u.constants;var v=ki.exports("mocha:mocha");t=e.exports=_;var w=a.defineConstants({INIT:"init",RUNNING:"running",REFERENCES_CLEANED:"referencesCleaned",DISPOSED:"disposed"});if(!a.isBrowser()&&void 0!==e.paths){var E=a.cwd();e.paths.push(E,o.join(E,"node_modules"))}let A;function _(e={}){e={...s,...e},this.files=[],this.options=e,this.suite=new t.Suite("",new t.Context,!0),this._cleanReferencesAfterRun=!0,this._state=w.INIT,this.grep(e.grep).fgrep(e.fgrep).ui(e.ui).reporter(e.reporter,e.reporterOption||e.reporterOptions).slow(e.slow).global(e.global),void 0!==e.timeout&&this.timeout(!1===e.timeout?0:e.timeout),"retries"in e&&this.retries(e.retries),["allowUncaught","asyncOnly","bail","checkLeaks","color","delay","diff","dryRun","failZero","forbidOnly","forbidPending","fullTrace","inlineDiffs","invert"].forEach((function(t){e[t]&&this[t]()}),this),e.rootHooks&&this.rootHooks(e.rootHooks),this._runnerClass=t.Runner,this._lazyLoadFiles=!1,this.isWorker=Boolean(e.isWorker),this.globalSetup(e.globalSetup).globalTeardown(e.globalTeardown).enableGlobalSetup(e.enableGlobalSetup).enableGlobalTeardown(e.enableGlobalTeardown),e.parallel&&(void 0===e.jobs||e.jobs>1)&&(v("attempting to enable parallel mode"),this.parallelMode(!0))}t.utils=a,t.interfaces=Es,t.reporters=i,t.Runnable=la,t.Context=Ys,t.Runner=Ya,t.Suite=u,t.Hook=ba,t.Test=Rs,t.afterEach=function(...e){return(A.afterEach||A.teardown).apply(this,e)},t.after=function(...e){return(A.after||A.suiteTeardown).apply(this,e)},t.beforeEach=function(...e){return(A.beforeEach||A.setup).apply(this,e)},t.before=function(...e){return(A.before||A.suiteSetup).apply(this,e)},t.describe=function(...e){return(A.describe||A.suite).apply(this,e)},t.describe.only=function(...e){return(A.describe||A.suite).only.apply(this,e)},t.describe.skip=function(...e){return(A.describe||A.suite).skip.apply(this,e)},t.it=function(...e){return(A.it||A.test).apply(this,e)},t.it.only=function(...e){return(A.it||A.test).only.apply(this,e)},t.it.skip=function(...e){return(A.it||A.test).skip.apply(this,e)},t.xdescribe=t.describe.skip,t.xit=t.it.skip,t.setup=t.beforeEach,t.suiteSetup=t.before,t.suiteTeardown=t.after,t.suite=t.describe,t.teardown=t.afterEach,t.test=t.it,t.run=function(...e){return A.run.apply(this,e)},_.prototype.bail=function(e){return this.suite.bail(!1!==e),this},_.prototype.addFile=function(e){return this.files.push(e),this},_.prototype.reporter=function(e,t){if("function"==typeof e)this._reporter=e;else{var n;if(i[e=e||"spec"]&&(n=i[e]),!n){let t;try{t=r(3564).resolve(e),n=O(t)}catch(r){if(t)throw f(r.message,t);try{n=O(o.resolve(e))}catch(t){throw f(t.message,e)}}}this._reporter=n}return this.options.reporterOption=t,this.options.reporterOptions=t,this},_.prototype.ui=function(e){var r;if("function"==typeof e)r=e;else if(e=e||"bdd",!(r=t.interfaces[e]))try{r=O(e)}catch(t){throw p(`invalid interface '${e}'`,e)}return r(this.suite),this.suite.on(y,(function(e){A=e})),this},_.prototype.loadFiles=function(e){var t=this,r=this.suite;this.files.forEach((function(e){e=o.resolve(e),r.emit(y,R,e,t),r.emit(b,O(e),e,t),r.emit(m,R,e,t)})),e&&e()},_.prototype.loadFilesAsync=function({esmDecorator:e}={}){var t=this,r=this.suite;return this.lazyLoadFiles(!0),c.loadFilesAsync(this.files,(function(e){r.emit(y,R,e,t)}),(function(e,n){r.emit(b,n,e,t),r.emit(m,R,e,t)}),e)},_.unloadFile=function(e){if(a.isBrowser())throw g("unloadFile() is only supported in a Node.js environment");return Ri.unloadFile(e)},_.prototype.unloadFiles=function(){if(this._state===w.DISPOSED)throw h("Mocha instance is already disposed, it cannot be used again.",this._cleanReferencesAfterRun,this);return this.files.forEach((function(e){_.unloadFile(e)})),this._state=w.INIT,this},_.prototype.fgrep=function(e){return e?this.grep(new RegExp(n(e))):this},_.prototype.grep=function(e){if(a.isString(e)){var t=e.match(/^\/(.*)\/([gimy]{0,4})$|.*/);this.options.grep=new RegExp(t[1]||t[0],t[2])}else this.options.grep=e;return this},_.prototype.invert=function(){return this.options.invert=!0,this},_.prototype.checkLeaks=function(e){return this.options.checkLeaks=!1!==e,this},_.prototype.cleanReferencesAfterRun=function(e){return this._cleanReferencesAfterRun=!1!==e,this},_.prototype.dispose=function(){if(this._state===w.RUNNING)throw d("Cannot dispose while the mocha instance is still running tests.");this.unloadFiles(),this._previousRunner&&this._previousRunner.dispose(),this.suite.dispose(),this._state=w.DISPOSED},_.prototype.fullTrace=function(e){return this.options.fullTrace=!1!==e,this},_.prototype.global=function(e){return this.options.global=(this.options.global||[]).concat(e).filter(Boolean).filter((function(e,t,r){return r.indexOf(e)===t})),this},_.prototype.globals=_.prototype.global,_.prototype.color=function(e){return this.options.color=!1!==e,this},_.prototype.inlineDiffs=function(e){return this.options.inlineDiffs=!1!==e,this},_.prototype.diff=function(e){return this.options.diff=!1!==e,this},_.prototype.timeout=function(e){return this.suite.timeout(e),this},_.prototype.retries=function(e){return this.suite.retries(e),this},_.prototype.slow=function(e){return this.suite.slow(e),this},_.prototype.asyncOnly=function(e){return this.options.asyncOnly=!1!==e,this},_.prototype.noHighlighting=function(){return this.options.noHighlighting=!0,this},_.prototype.allowUncaught=function(e){return this.options.allowUncaught=!1!==e,this},_.prototype.delay=function(){return this.options.delay=!0,this},_.prototype.dryRun=function(e){return this.options.dryRun=!1!==e,this},_.prototype.failZero=function(e){return this.options.failZero=!1!==e,this},_.prototype.forbidOnly=function(e){return this.options.forbidOnly=!1!==e,this},_.prototype.forbidPending=function(e){return this.options.forbidPending=!1!==e,this},_.prototype._guardRunningStateTransition=function(){if(this._state===w.RUNNING)throw d("Mocha instance is currently running tests, cannot start a next test run until this one is done",this);if(this._state===w.DISPOSED||this._state===w.REFERENCES_CLEANED)throw h("Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.",this._cleanReferencesAfterRun,this)},Object.defineProperty(_.prototype,"version",{value:Ws,configurable:!1,enumerable:!0,writable:!1}),_.prototype.run=function(e){this._guardRunningStateTransition(),this._state=w.RUNNING,this._previousRunner&&(this._previousRunner.dispose(),this.suite.reset()),this.files.length&&!this._lazyLoadFiles&&this.loadFiles();var r=this.suite,n=this.options;n.files=this.files;const o=new this._runnerClass(r,{cleanReferencesAfterRun:this._cleanReferencesAfterRun,delay:n.delay,dryRun:n.dryRun,failZero:n.failZero});l(o);var i=new this._reporter(o,n);o.checkLeaks=!0===n.checkLeaks,o.fullStackTrace=n.fullTrace,o.asyncOnly=n.asyncOnly,o.allowUncaught=n.allowUncaught,o.forbidOnly=n.forbidOnly,o.forbidPending=n.forbidPending,n.grep&&o.grep(n.grep,n.invert),n.global&&o.globals(n.global),void 0!==n.color&&(t.reporters.Base.useColors=n.color),t.reporters.Base.inlineDiffs=n.inlineDiffs,t.reporters.Base.hideDiff=!n.diff;return(async e=>{const t=this.options.enableGlobalSetup&&this.hasGlobalSetupFixtures()?await this.runGlobalSetup(e):{},r=await e.runAsync({files:this.files,options:n});return this.options.enableGlobalTeardown&&this.hasGlobalTeardownFixtures()&&await this.runGlobalTeardown(e,{context:t}),r})(o).then((t=>{this._previousRunner=o,this._state=this._cleanReferencesAfterRun?w.REFERENCES_CLEANED:w.INIT,e=e||a.noop,"function"==typeof i.done?i.done(t,e):e(t)})),o},_.prototype.rootHooks=function({beforeAll:e=[],beforeEach:t=[],afterAll:r=[],afterEach:n=[]}={}){return e=a.castArray(e),t=a.castArray(t),r=a.castArray(r),n=a.castArray(n),e.forEach((e=>{this.suite.beforeAll(e)})),t.forEach((e=>{this.suite.beforeEach(e)})),r.forEach((e=>{this.suite.afterAll(e)})),n.forEach((e=>{this.suite.afterEach(e)})),this},_.prototype.parallelMode=function(e=!0){if(a.isBrowser())throw g("parallel mode is only supported in Node.js");const r=Boolean(e);if(r===this.options.parallel&&this._lazyLoadFiles&&this._runnerClass!==t.Runner)return this;if(this._state!==w.INIT)throw g("cannot change parallel mode after having called run()");return this.options.parallel=r,this._runnerClass=r?Ri:t.Runner,this.lazyLoadFiles(this._lazyLoadFiles||r)},_.prototype.lazyLoadFiles=function(e){return this._lazyLoadFiles=!0===e,v("set lazy load to %s",e),this},_.prototype.globalSetup=function(e=[]){return e=a.castArray(e),this.options.globalSetup=e,v("configured %d global setup functions",e.length),this},_.prototype.globalTeardown=function(e=[]){return e=a.castArray(e),this.options.globalTeardown=e,v("configured %d global teardown functions",e.length),this},_.prototype.runGlobalSetup=async function(e={}){const{globalSetup:t}=this.options;return t&&t.length&&(v("run(): global setup starting"),await this._runGlobalFixtures(t,e),v("run(): global setup complete")),e},_.prototype.runGlobalTeardown=async function(e={}){const{globalTeardown:t}=this.options;return t&&t.length&&(v("run(): global teardown starting"),await this._runGlobalFixtures(t,e)),v("run(): global teardown complete"),e},_.prototype._runGlobalFixtures=async function(e=[],t={}){for await(const r of e)await r.call(t);return t},_.prototype.enableGlobalSetup=function(e=!0){return this.options.enableGlobalSetup=Boolean(e),this},_.prototype.enableGlobalTeardown=function(e=!0){return this.options.enableGlobalTeardown=Boolean(e),this},_.prototype.hasGlobalSetupFixtures=function(){return Boolean(this.options.globalSetup.length)},_.prototype.hasGlobalTeardownFixtures=function(){return Boolean(this.options.globalTeardown.length)}})(Ur,Ur.exports),D.stdout=Ir({label:!1});var Js=function(e){return e.replace("?","").split("&").reduce((function(e,t){var r=t.indexOf("="),n=t.slice(0,r),o=t.slice(++r);return e[n]=decodeURIComponent(o.replace(/\+/g,"%20")),e}),{})},Zs=function(e){for(var t=document.getElementById("mocha").getElementsByTagName(e),r=0,n=t.length;r/g,">").replace(/\/\/(.*)/gm,'//$1').replace(/('.*?')/gm,'$1').replace(/(\d+\.\d+)/gm,'$1').replace(/(\d+)/gm,'$1').replace(/\bnew[ \t]+(\w+)/gm,'new $1').replace(/\b(function|new|throw|return|var|if|else)\b/gm,'$1')},Ks=Ur.exports,Qs=new Ks({reporter:"html"}),Xs=R.Date,eu=R.setTimeout;R.setInterval,R.clearTimeout,R.clearInterval;var tu=[],ru=R.onerror;D.removeListener=function(e,t){if("uncaughtException"===e){R.onerror=ru||function(){};var r=tu.indexOf(t);-1!==r&&tu.splice(r,1)}},D.listenerCount=function(e){return"uncaughtException"===e?tu.length:0},D.on=function(e,t){"uncaughtException"===e&&(R.onerror=function(e,r,n){return t(new Error(e+" ("+r+":"+n+")")),!Qs.options.allowUncaught},tu.push(t))},D.listeners=function(e){return"uncaughtException"===e?tu:[]},Qs.suite.removeAllListeners("pre-require");var nu,ou=[];function iu(){for(var e=(new Xs).getTime();ou.length&&(new Xs).getTime()-e<100;)ou.shift()();nu=ou.length?eu(iu,0):null}return Ks.Runner.immediately=function(e){ou.push(e),nu||(nu=eu(iu,0))},Qs.throwError=function(e){throw tu.forEach((function(t){t(e)})),e},Qs.ui=function(e){return Ks.prototype.ui.call(this,e),this.suite.emit("pre-require",R,null,this),this},Qs.setup=function(e){"string"==typeof e&&(e={ui:e}),!0===e.delay&&this.delay();var t=this;return Object.keys(e).filter((function(e){return"delay"!==e})).forEach((function(r){Object.prototype.hasOwnProperty.call(e,r)&&t[r](e[r])})),this},Qs.run=function(e){var t=Qs.options;Qs.globals("location");var r=Js(R.location.search||"");return r.grep&&Qs.grep(r.grep),r.fgrep&&Qs.fgrep(r.fgrep),r.invert&&Qs.invert(),Ks.prototype.run.call(Qs,(function(r){var n=R.document;n&&n.getElementById("mocha")&&!0!==t.noHighlighting&&Zs("code"),e&&e(r)}))},Ks.process=D,R.Mocha=Ks,R.mocha=Qs,["describe","context","it","specify","xdescribe","xcontext","xit","xspecify","before","beforeEach","afterEach","after"].forEach((function(e){Qs[e]=R[e]})),Qs}()}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};(()=>{"use strict";var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.run=void 0,r(7732),e.run=function(){return new Promise(((e,t)=>{var n;mocha.setup({ui:"tdd",reporter:void 0}),(n=r(7795)).keys().forEach(n);try{mocha.run((r=>{r>0?t(new Error(`${r} tests failed.`)):e()}))}catch(e){console.error(e),t(e)}}))}})();var o=exports;for(var i in n)o[i]=n[i];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/vscode-web-ext/dist/web/test/suite/index.js.map b/vscode-web-ext/dist/web/test/suite/index.js.map index cfab0dd..79fe3fa 100644 --- a/vscode-web-ext/dist/web/test/suite/index.js.map +++ b/vscode-web-ext/dist/web/test/suite/index.js.map @@ -1 +1 @@ -{"version":3,"file":"test/suite/index.js","mappings":";;;;;;;AAAA;;;;;;;;;;;;ACAA;AACA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACoG;AACtG,CAAC,uBAAuB;;AAExB,yBAAyB,qBAAM,mBAAmB,qBAAM;AACxD;AACA,+CAA+C;;AAE/C;AACA;AACA,yDAAyD;;AAEzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA,GAAG,qBAAqB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wHAAwH,qBAAM,mBAAmB,qBAAM;;AAEvJ;AACA;AACA,mCAAmC,iBAAiB,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,kBAAkB;AAClB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;;AAEhC;AACA,6CAA6C,UAAU;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,WAAW;;AAEtB;AACA;AACA;AACA,WAAW,WAAW;;AAEtB;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,WAAW,WAAW;;AAEtB;AACA;AACA,WAAW,UAAU;;AAErB;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB;AACxB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,2BAA2B,QAAQ;AACnC;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,MAAM;AACN;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA,GAAG,mBAAmB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,SAAS;AACnC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,KAAK;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA,aAAa;AACb;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,UAAU;AACjC;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,8EAA8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;AACrD;AACA,qDAAqD,iEAAiE;AACtH;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,yCAAyC;AACzC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;;AAEtD;;AAEA,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,IAAI;AACX;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;;AAEA;AACA,aAAa,UAAU;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,sBAAsB;AACxD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;;AAEA;AACA,eAAe,KAAuB;AACtC,mCAAmC,gCAAgC;AACnE,MAAM,CAGC;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA,gBAAgB;;AAEhB;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,UAAU;AACV;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG;;AAEV;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA,iDAAiD,4BAA4B;AAC7E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;;AAGA;AACA;AACA;AACA,YAAY;AACZ,gCAAgC;;AAEhC;AACA;AACA;;AAEA,sFAAsF;;AAEtF;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW,6BAA6B;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,UAAU;AACV;AACA;;AAEA,mCAAmC;;AAEnC;AACA;AACA;AACA,QAAQ;AACR;AACA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kDAAkD,eAAe;;AAEjE,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,MAAM;;;AAGN,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,EAAE;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G,0BAA0B,2BAA2B,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEtW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,uBAAuB;AACzC;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE,uCAAuC;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;;AAExB;AACA,+BAA+B;;AAE/B;AACA;AACA,UAAU;;;AAGV;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;;AAGA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA,GAAG;;AAEH;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mEAAmE,uCAAuC;;AAE1G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;;;AAGN,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,2BAA2B;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;;AAGA;AACA,MAAM;;;AAGN;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,qBAAqB,uBAAuB;AAC5C;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAiE;;AAEjE,oCAAoC;;AAEpC,sDAAsD,gBAAgB,kEAAkE,wDAAwD,6DAA6D,sDAAsD;;AAEnT,sCAAsC;;AAEtC,uCAAuC;;AAEvC,2CAA2C,uDAAuD,uCAAuC,SAAS,OAAO,oBAAoB;;AAE7K;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;;;AAGV;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;;;AAGd;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAA+D;;AAE/D,kCAAkC;;AAElC,oDAAoD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD;;AAE/S,oCAAoC;;AAEpC,qCAAqC;;AAErC,yCAAyC,uDAAuD,uCAAuC,SAAS,OAAO,oBAAoB;;AAE3K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mEAAmE,uCAAuC;;AAE1G;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;;AAEhC;AACA,6CAA6C,UAAU;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,WAAW;;AAEtB;AACA;AACA;AACA,WAAW,WAAW;;AAEtB;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,WAAW,WAAW;;AAEtB;AACA;AACA,WAAW,UAAU;;AAErB;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB;AACxB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,2BAA2B,QAAQ;AACnC;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,MAAM;AACN;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB,YAAY;;AAEZ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,8iBAA8iB,wZAAwZ,WAAW;;AAEr+B;AACA;AACA,gBAAgB;AAChB,eAAe;AACf,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,0xfAA0xf,inBAAinB,6BAA6B,yBAAyB;AACj8gB,oBAAoB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACxz9B,0BAA0B;AAC1B,2BAA2B;AAC3B;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;;AAEA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC,qBAAqB,iBAAiB;AACtC,uBAAuB,MAAM,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,OAAO;AACP;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,0CAA0C,GAAG;AAC7C,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,yCAAyC;AACzC,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA,KAAK,OAAO;AACZ;AACA;;AAEA,GAAG;AACH,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,aAAa,UAAU;AACvB,cAAc,WAAW;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc;AACd;AACA;AACA,sCAAsC,0BAA0B;AAChE;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG;AACrB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc,yBAAyB,cAAc;AACpG;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,yBAAyB;AAChE;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,aAAa,GAAG;AAChB,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,eAAe,QAAQ;AACvB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,eAAe,QAAQ;AACvB;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAA0B;AAClC,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,GAAG;AAChB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,gDAAgD,YAAY,GAAG;AAC/D;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,GAAG;AAChB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,WAAW;AACX,WAAW;AACX,aAAa,MAAM;AACnB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE;AACA;AACA,WAAW;AACX,aAAa,MAAM;AACnB,eAAe,QAAQ;AACvB,cAAc,WAAW;AACzB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,aAAa,GAAG;AAChB,eAAe;AACf;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA,SAAS,YAAY;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH,SAAS,QAAQ;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,mBAAmB;AACrG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,sCAAsC;AACjE;AACA,aAAa,QAAQ;AACrB,aAAa,wBAAwB;AACrC,aAAa,QAAQ;AACrB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,kBAAkB;AAC/B;AACA,eAAe,OAAO,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,kBAAkB;AAC/B,aAAa,GAAG;AAChB;AACA,eAAe,OAAO,iBAAiB;AACvC;AACA;AACA;AACA,KAAK,uBAAuB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,OAAO,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,eAAe;AAC5B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,kBAAkB;AAClB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA,4BAA4B,GAAG,mEAAmE;AAClG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,GAAG;AAChB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,eAAe;;AAEf;AACA,SAAS,kCAAkC;AAC3C,SAAS,0CAA0C;;AAEnD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,SAAS,oBAAoB;;AAE7B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsC;AACnE;AACA;;AAEA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,YAAY,mCAAmC,oBAAoB,KAAK,iBAAiB;AACnI;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA,UAAU;AACV;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C,mBAAmB,EAAE,eAAe;AAChF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,YAAY;AACZ;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,0BAA0B,oBAAoB,OAAO,2BAA2B;AAChF,UAAU;AACV;AACA;AACA;AACA,YAAY;AACZ,+CAA+C,KAAK;AACpD;AACA,0BAA0B,oBAAoB,MAAM,YAAY;AAChE;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,sBAAsB,kBAAkB;AACxC;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,mGAAmG;AACnG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,yDAAyD;AACzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,iBAAiB;AAC5B,kCAAkC;AAClC;AACA;AACA,aAAa,QAAQ,sBAAsB;AAC3C,eAAe,iBAAiB;AAChC;AACA,+DAA+D;AAC/D;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,cAAc;AACd;AACA;AACA;AACA,aAAa,4BAA4B,EAAE;AAC3C;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO,sCAAsC,QAAQ;AACzE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,GAAG;;AAEH,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,aAAa;AAC5B,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,cAAc;;AAEd;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA,UAAU;AACV;AACA,eAAe,kBAAkB,6BAA6B,OAAO,YAAY,YAAY;AAC7F;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH,cAAc;;AAEd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,sDAAsD;AACtD;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gEAAgE;AAChE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC;AACpC;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,GAAG;;AAEH,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,MAAM;AAClC,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA,SAAS,oBAAoB;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,sCAAsC;AACtC;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wCAAwC;AACxC;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,UAAU;AAC7B,mBAAmB,SAAS;AAC5B,mBAAmB,QAAQ;AAC3B,mBAAmB,SAAS;AAC5B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,UAAU;AAC7B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA,eAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,SAAS,qEAAqE;AAC9E;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,oBAAoB;AACjC,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,qBAAqB;AAClC,aAAa,UAAU;AACvB,aAAa,SAAS;AACtB;AACA,6BAA6B;AAC7B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,6CAA6C,gBAAgB;AAC7D,QAAQ,cAAc,gBAAgB;AACtC;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,uBAAuB;AACtD,QAAQ,gBAAgB;AACxB,QAAQ,uBAAuB,MAAM,2BAA2B;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA,+BAA+B,uCAAuC;AACtE;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAe,CAAC,2CAAY;AACtD;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,eAAe,OAAO;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,kEAAkE,GAAG;AACrE;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,WAAW;AACX,WAAW;AACX,WAAW;AACX,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,WAAW;AACX,WAAW;AACX,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc,IAAI;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,WAAW;AACX,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,WAAW;AACX,aAAa,eAAe;AAC5B,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,aAAa,iBAAiB;AAC9B,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,WAAW;AACX,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD,UAAU;AACV;AACA;AACA;AACA,aAAa,SAAS,8BAA8B;AACpD;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,uBAAuB,IAAI,gBAAgB;AAC3E;AACA,4DAA4D;AAC5D;AACA,aAAa,SAAS;AACtB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,iBAAiB,iDAAiD,KAAK,8BAA8B;AAC7I;AACA,2EAA2E,8BAA8B;AACzG,aAAa,QAAQ;AACrB;AACA,eAAe,iBAAiB;AAChC;AACA,6EAA6E;AAC7E,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,iBAAiB,oDAAoD,KAAK,iCAAiC;AACnJ;AACA,uDAAuD,2BAA2B;AAClF,aAAa,QAAQ;AACrB;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,aAAa,QAAQ;AACrB,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,qBAAqB;AACrC,gBAAgB,qBAAqB;AACrC,gBAAgB,qBAAqB;AACrC,gBAAgB,qBAAqB;AACrC;;AAEA;AACA,iCAAiC,0BAA0B;AAC3D;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,iBAAiB;AACjC,gBAAgB,iBAAiB;AACjC;;AAEA;AACA;AACA;AACA,mBAAmB,uBAAuB;;AAE1C;AACA,aAAa,GAAG;AAChB,YAAY;AACZ,eAAe;AACf;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe;AACf;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,aAAa;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;;AAEA,yBAAyB,iBAAiB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA,CAAC;AACD;;;;;;;AC1poBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACRA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA,uCAAiC;AAEjC,0DAA0D;AAC1D,8CAA8C;AAC9C,sCAAiC;AACjC,kDAAkD;AAElD,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU,kDAAkD,0CAA0C;;AAE5F,eAAe,mBAAO,CAAC,EAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,mBAAO,CAAC,EAAmC;;AAEhE,gBAAgB,mBAAO,CAAC,EAAO;AAC/B;;AAEA,qBAAqB,+BAAsB;AAC3C;AACA;;AAEA,mDAAmD,gCAAmC;AACtF,uCAAuC,mBAAO,CAAC,EAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,mBAAO,CAAC,EAA6B;;AAExD;AACA;AACA,EAAE;AACF;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,OAAO,eAAe,OAAO;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB;;AAEpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA,yEAAyE,eAAe;AACxF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;ACtnBA;AACA;;AAEA;;AAEA;;AAEA;AACa,CAAC;AACd;AACA;AACA;AACA;;AAEA,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU,kDAAkD,0CAA0C;;AAE5F,kDAAkD,0EAA0E,eAAe;;AAE3I,wCAAwC,uBAAuB,yFAAyF;;AAExJ,8BAA8B,gGAAgG,mDAAmD;;AAEjL,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,mBAAO,CAAC,EAAW;AACxD,+DAA+D;;AAE/D;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;;AAGJ;AACA;AACA,CAAC;AACD;AACA;AACA,iCAAiC,mBAAO,CAAC,EAAO;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,CAAC;AACD;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA,qCAAqC,mBAAO,CAAC,EAAW;AACxD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD,oBAAoB;;;;;;;AClMpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,SAAS;AACjC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,OAAO,oBAAoB,OAAO;AAC/C;AACA;;AAEA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA,QAAQ,SAAS,OAAO;AACxB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,IAAI,OAAO;AACX,iBAAiB,OAAO;AACxB,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;AAGf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,uCAA0C;;AAE1C;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;AAChB,sBAAsB;;AAEtB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,cAAc;AACd,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,eAAe;AACf,2BAA2B;;AAE3B;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB,0CAAgD;;AAEhD;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,WAAW;AACX;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,WAAW,UAAU;AACrB;AACA,0CAAsC;;AAEtC,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO,qCAAqC;AACxE,4BAA4B,OAAO,sDAAsD;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;AC1sBnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA,6BAA6B;;;;;;;;ACvL7B;AACA;;AAEa;;AAEb,wBAAwB,mBAAO,CAAC,EAAc;AAC9C,0BAA0B,mBAAO,CAAC,EAAuB;AACzD,sBAAsB,mBAAO,CAAC,EAAmB;AACjD,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,yBAAyB;AACzB,2BAA2B;AAC3B,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;;AAGzB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;AC7UY;;AAEb,qBAAqB,mBAAO,CAAC,EAAuB;AACpD,gBAAgB,mBAAO,CAAC,EAAqB;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,2DAA2D;;AAE3D;;;;;;;;AChCa;;AAEb,iBAAiB,mBAAO,CAAC,EAAmB;;AAE5C;AACA;AACA;;;;;;;;ACNa;;AAEb;AACA;AACA,2FAA2F;AAC3F,4CAA4C;;AAE5C;AACA;AACA;AACA,gCAAgC;;AAEhC,kEAAkE;AAClE,qEAAqE;;AAErE;AACA,iCAAiC;AACjC;AACA,uCAAuC;;AAEvC,2DAA2D;AAC3D,+DAA+D;;AAE/D;AACA;AACA,oBAAoB,gBAAgB;AACpC,2EAA2E;;AAE3E,yGAAyG;;AAEzG;AACA,6CAA6C;;AAE7C,8DAA8D;;AAE9D;AACA;AACA,uEAAuE;AACvE;;AAEA;AACA;;;;;;;;ACzCa;;AAEb,mBAAmB,mBAAO,CAAC,EAAe;;AAE1C,eAAe,mBAAO,CAAC,EAAI;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACda;;AAEb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF,GAAG;AACH;;AAEA;AACA;AACA;AACA,UAAU;AACV,GAAG;AACH,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;AAEA,iBAAiB,mBAAO,CAAC,EAAa;;AAEtC,uDAAuD,uBAAuB;;AAE9E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,sDAAsD;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,EAAe;AAClC,aAAa,mBAAO,CAAC,EAAK;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvVa;;AAEb;AACA,oBAAoB,mBAAO,CAAC,EAAS;;AAErC;AACA,yCAAyC;AACzC,qCAAqC;AACrC,8CAA8C;AAC9C,0CAA0C;;AAE1C;AACA;;;;;;;;ACZa;;AAEb,qBAAqB,mBAAO,CAAC,EAAkB;;AAE/C;;;;;;;;ACJa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA,+EAA+E,sCAAsC;;AAErH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnDa;;AAEb,WAAW,mBAAO,CAAC,EAAe;;AAElC;;;;;;;;ACJa;;AAEb,WAAW,mBAAO,CAAC,EAAe;AAClC,mBAAmB,mBAAO,CAAC,EAAe;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,kBAAkB;AAC9D,EAAE;AACF,CAAC,oBAAoB;AACrB;;;;;;;;AC9Ca;;AAEb;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,EAAuB;AACpD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCa;;AAEb,cAAc,mBAAO,CAAC,EAAU;AAChC,2BAA2B,mBAAO,CAAC,EAAwB;AAC3D,gBAAgB,mBAAO,CAAC,EAAqB;AAC7C,WAAW,mBAAO,CAAC,EAAM;;AAEzB;AACA,qBAAqB,mBAAO,CAAC,EAAuB;;AAEpD,4CAA4C,qBAAM;AAClD;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE;AACF;AACA;;AAEA,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA,6BAA6B;AAC7B,0DAA0D;AAC1D;AACA;;;;;;;;ACtDa;;AAEb,iBAAiB,mBAAO,CAAC,EAAa;;AAEtC;AACA;;AAEA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;;;;;;;;AC7Da;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6BAA6B,WAAW;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,2CAA2C;AAC3C,2EAA2E;;AAE3E,0BAA0B;;AAE1B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,gBAAgB;AAChB,kEAAkE;AAClE;AACA;AACA,IAAI;AACJ,iCAAiC;AACjC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,gBAAgB;AAChB,kEAAkE;AAClE,wBAAwB;AACxB,6BAA6B;AAC7B;AACA,6FAA6F;AAC7F;AACA;;;;;;;;ACpGa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,qBAAM;;AAElD;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1Ba;;AAEb,mBAAmB,mBAAO,CAAC,EAAe;;AAE1C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;ACfa;;AAEb,cAAc,mBAAO,CAAC,EAAU;AAChC,2BAA2B,mBAAO,CAAC,EAAwB;AAC3D,gBAAgB,mBAAO,CAAC,EAAqB;;AAE7C;AACA,qBAAqB,mBAAO,CAAC,EAAuB;AACpD,WAAW,mBAAO,CAAC,EAAM;;AAEzB,4CAA4C,qBAAM;AAClD;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB;AACA,EAAE;AACF;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACa;;AAEb,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,iEAAiE,MAAM,iCAAiC,4CAA4C,KAAK;;AAEjd,4CAA4C,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;;AAEpM,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM,kDAAkD,0EAA0E,eAAe;;AAE3I,wCAAwC,uBAAuB,yFAAyF;;AAExJ,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,mCAAmC,gEAAgE,sDAAsD,+DAA+D,mCAAmC,6EAA6E,qCAAqC,iDAAiD,8BAA8B,qBAAqB,0EAA0E,qDAAqD,eAAe,yEAAyE,GAAG,2CAA2C;;AAEttB,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,uEAAuE,IAAI,eAAe,YAAY;;AAElT,2CAA2C,kCAAkC,kCAAkC,OAAO,wDAAwD,gBAAgB,uBAAuB,kDAAkD,kCAAkC,uDAAuD,sBAAsB;;AAEtX,iCAAiC;;AAEjC,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,8BAA8B,gGAAgG,mDAAmD;;AAEjL,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU,eAAe,mBAAO,CAAC,EAAO;AAC9B;;AAEA,gBAAgB,mBAAO,CAAC,EAAW;AACnC,iEAAiE;;;AAGjE;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA,uEAAuE;AACvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,sBAAsB,OAAO,WAAW,OAAO,gBAAgB,OAAO;;AAEtE;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE;AACrE,oCAAoC,aAAa,IAAI,aAAa;;AAElE;AACA;AACA,oDAAoD;AACpD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB,MAAM;AACN;AACA,uCAAuC;AACvC;AACA;;AAEA,oIAAoI;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,UAAU;;;AAGV,qBAAqB;AACrB;;AAEA;AACA;AACA,2BAA2B;AAC3B,QAAQ;AACR;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,UAAU,OAAO,WAAW,OAAO;AACnC;AACA;AACA,YAAY,OAAO,WAAW,OAAO,yBAAyB,OAAO;AACrE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,UAAU;AACV;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;;;;;;ACpfA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA,oDAAoD,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;AC7Ca;;AAEb,aAAa,mBAAO,CAAC,EAAmB;AACxC,eAAe,mBAAO,CAAC,EAAW;;AAElC,qBAAqB,mBAAO,CAAC,EAAkB;AAC/C,kBAAkB,mBAAO,CAAC,EAAY;AACtC,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACjBa;;AAEb,WAAW,mBAAO,CAAC,EAAa;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,mBAAO,CAAC,EAA0B;;AAE/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;;AAEA;;AAEA;;;;;;;;ACpDa;;AAEb;AACA,aAAa,mBAAO,CAAC,EAAe;;AAEpC;AACA,6CAA6C,sBAAsB,EAAE,mBAAO,CAAC,EAAkB;;AAE/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;AC/Ba;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBa;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,EAAe,GAAG;AACxC;AACA,2CAA2C,gBAAgB;AAC3D,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzHa;;AAEb,mBAAmB,mBAAO,CAAC,EAAe;;AAE1C;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS,UAAU;AACxC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;AChCa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBa;;AAEb,qBAAqB,mBAAO,CAAC,EAAkB;;AAE/C;AACA;AACA;;;;;;;;ACNa;;AAEb,kBAAkB,mBAAO,CAAC,EAAY;AACtC,aAAa,mBAAO,CAAC,EAAmB;;AAExC;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACbA;AACA;AACa;;AAEb,kCAAkC;;AAElC,8BAA8B;;AAE9B,yCAAyC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,uCAAuC,cAAc,WAAW,YAAY,UAAU,MAAM,mDAAmD,UAAU,sBAAsB;;AAE3Y,gCAAgC;;AAEhC,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,uCAAuC,mBAAO,CAAC,EAAW;AAC1D;AACA;AACA;AACA,gDAAgD,mBAAO,CAAC,EAAQ;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,+BAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,IAAI;;;AAGJ;;AAEA,SAAS,kBAAkB;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,wBAAwB;AAC1C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;A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","sources":["../../external commonjs \"vscode\"","../.././node_modules/mocha/mocha.js","../.././node_modules/mocha/ sync","../.././src/web/test/suite/ sync \\.test$","../.././src/web/test/suite/extension.test.ts","../.././node_modules/assert/build/assert.js","../.././node_modules/assert/build/internal/errors.js","../.././node_modules/util/util.js","../.././node_modules/process/browser.js","../.././node_modules/util/support/types.js","../.././node_modules/is-arguments/index.js","../.././node_modules/has-tostringtag/shams.js","../.././node_modules/has-symbols/shams.js","../.././node_modules/call-bind/callBound.js","../.././node_modules/get-intrinsic/index.js","../.././node_modules/has-symbols/index.js","../.././node_modules/function-bind/index.js","../.././node_modules/function-bind/implementation.js","../.././node_modules/has/src/index.js","../.././node_modules/call-bind/index.js","../.././node_modules/is-generator-function/index.js","../.././node_modules/which-typed-array/index.js","../.././node_modules/for-each/index.js","../.././node_modules/is-callable/index.js","../.././node_modules/available-typed-arrays/index.js","../.././node_modules/gopd/index.js","../.././node_modules/is-typed-array/index.js","../.././node_modules/util/support/isBufferBrowser.js","../.././node_modules/inherits/inherits_browser.js","../.././node_modules/assert/build/internal/assert/assertion_error.js","../.././node_modules/es6-object-assign/index.js","../.././node_modules/object-is/index.js","../.././node_modules/define-properties/index.js","../.././node_modules/object-keys/index.js","../.././node_modules/object-keys/isArguments.js","../.././node_modules/object-keys/implementation.js","../.././node_modules/has-property-descriptors/index.js","../.././node_modules/object-is/implementation.js","../.././node_modules/object-is/polyfill.js","../.././node_modules/object-is/shim.js","../.././node_modules/assert/build/internal/util/comparisons.js","../.././node_modules/is-nan/index.js","../.././node_modules/is-nan/implementation.js","../.././node_modules/is-nan/polyfill.js","../.././node_modules/is-nan/shim.js","../../webpack/bootstrap","../../webpack/runtime/global","../../webpack/runtime/hasOwnProperty shorthand","../.././src/web/test/suite/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"test/suite/index.js","mappings":"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O,GAAe,MAAM,GAAe,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,SAAS,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,EAAS,MAAM,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,SAAS,EAAS,SAAS,IAAS,SAAS,EAAS,MAAM,EAAS,MAAM,GAAe,OAAO,GAAe,MAAM,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAS,SAAS,EAAS,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,OAAO,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,EAAS,KAAK,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,IAAS,KAAK,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,IAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAO,OAAO,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,MAAM,EAAS,OAAO,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAO,QAAQ,EAAO,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,QAAQ,EAAS,UAAU,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,SAAS,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,SAAS,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,KAAK,EAAO,QAAQ,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,UAAU,EAAS,UAAU,EAAS,KAAK,EAAS,MAAM,EAAS,KAAK,EAAS,MAAM,EAAS,OAAO,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,UAAU,EAAS,OAAO,EAAS,MAAM,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,OAAO,EAAS,QAA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","sources":["../.././node_modules/assert/build/assert.js","../.././node_modules/assert/build/internal/assert/assertion_error.js","../.././node_modules/assert/build/internal/errors.js","../.././node_modules/assert/build/internal/util/comparisons.js","../.././node_modules/call-bind/callBound.js","../.././node_modules/call-bind/index.js","../.././node_modules/define-properties/index.js","../.././node_modules/es6-object-assign/index.js","../.././node_modules/for-each/index.js","../.././node_modules/function-bind/implementation.js","../.././node_modules/function-bind/index.js","../.././node_modules/get-intrinsic/index.js","../.././node_modules/gopd/index.js","../.././node_modules/has-property-descriptors/index.js","../.././node_modules/has-symbols/index.js","../.././node_modules/has-symbols/shams.js","../.././node_modules/has-tostringtag/shams.js","../.././node_modules/has/src/index.js","../.././node_modules/inherits/inherits_browser.js","../.././node_modules/is-arguments/index.js","../.././node_modules/is-callable/index.js","../.././node_modules/is-generator-function/index.js","../.././node_modules/is-nan/implementation.js","../.././node_modules/is-nan/index.js","../.././node_modules/is-nan/polyfill.js","../.././node_modules/is-nan/shim.js","../.././node_modules/is-typed-array/index.js","../.././node_modules/mocha/ sync","../.././node_modules/object-is/implementation.js","../.././node_modules/object-is/index.js","../.././node_modules/object-is/polyfill.js","../.././node_modules/object-is/shim.js","../.././node_modules/object-keys/implementation.js","../.././node_modules/object-keys/index.js","../.././node_modules/object-keys/isArguments.js","../.././node_modules/process/browser.js","../.././src/web/test/suite/extension.test.ts","../.././node_modules/util/support/isBufferBrowser.js","../.././node_modules/util/support/types.js","../.././node_modules/util/util.js","../.././node_modules/which-typed-array/index.js","../.././src/web/test/suite/ sync \\.test$","../../external commonjs \"vscode\"","../.././node_modules/available-typed-arrays/index.js","../.././node_modules/mocha/mocha.js","../../webpack/bootstrap","../../webpack/runtime/global","../../webpack/runtime/hasOwnProperty shorthand","../.././src/web/test/suite/index.ts"],"sourcesContent":["// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\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 (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\ntry {\n\tnull.error; // eslint-disable-line no-unused-expressions\n} catch (e) {\n\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\tvar errorProto = getProto(getProto(e));\n\tINTRINSICS['%Error.prototype%'] = errorProto;\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 3564;\nmodule.exports = webpackEmptyContext;","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import * as assert from 'assert';\n\n// You can import and use all API from the 'vscode' module\n// as well as import your extension to test it\nimport * as vscode from 'vscode';\n// import * as myExtension from '../../extension';\n\nsuite('Web Extension Test Suite', () => {\n\tvscode.window.showInformationMessage('Start all tests.');\n\n\ttest('Sample test', () => {\n\t\tassert.strictEqual(-1, [1, 2, 3].indexOf(5));\n\t\tassert.strictEqual(-1, [1, 2, 3].indexOf(0));\n\t});\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","var map = {\n\t\"./extension.test\": 6993\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7795;","module.exports = require(\"vscode\");","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// mocha@10.2.0 in javascript ES2018\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.mocha = factory());\n})(this, (function () { 'use strict';\n\n var global$2 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n var global$1 = (typeof global$2 !== \"undefined\" ? global$2 :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n // shim for using process in browser\n // based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\n function defaultSetTimout$1() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout$1 () {\n throw new Error('clearTimeout has not been defined');\n }\n var cachedSetTimeout$1 = defaultSetTimout$1;\n var cachedClearTimeout$1 = defaultClearTimeout$1;\n if (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout$1 = setTimeout;\n }\n if (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout$1 = clearTimeout;\n }\n\n function runTimeout$1(fun) {\n if (cachedSetTimeout$1 === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout$1 === defaultSetTimout$1 || !cachedSetTimeout$1) && setTimeout) {\n cachedSetTimeout$1 = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout$1(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout$1.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout$1.call(this, fun, 0);\n }\n }\n\n\n }\n function runClearTimeout$1(marker) {\n if (cachedClearTimeout$1 === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout$1 === defaultClearTimeout$1 || !cachedClearTimeout$1) && clearTimeout) {\n cachedClearTimeout$1 = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout$1(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout$1.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout$1.call(this, marker);\n }\n }\n\n\n\n }\n var queue$1 = [];\n var draining$1 = false;\n var currentQueue$1;\n var queueIndex$1 = -1;\n\n function cleanUpNextTick$1() {\n if (!draining$1 || !currentQueue$1) {\n return;\n }\n draining$1 = false;\n if (currentQueue$1.length) {\n queue$1 = currentQueue$1.concat(queue$1);\n } else {\n queueIndex$1 = -1;\n }\n if (queue$1.length) {\n drainQueue$1();\n }\n }\n\n function drainQueue$1() {\n if (draining$1) {\n return;\n }\n var timeout = runTimeout$1(cleanUpNextTick$1);\n draining$1 = true;\n\n var len = queue$1.length;\n while(len) {\n currentQueue$1 = queue$1;\n queue$1 = [];\n while (++queueIndex$1 < len) {\n if (currentQueue$1) {\n currentQueue$1[queueIndex$1].run();\n }\n }\n queueIndex$1 = -1;\n len = queue$1.length;\n }\n currentQueue$1 = null;\n draining$1 = false;\n runClearTimeout$1(timeout);\n }\n function nextTick$1(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue$1.push(new Item$1(fun, args));\n if (queue$1.length === 1 && !draining$1) {\n runTimeout$1(drainQueue$1);\n }\n }\n // v8 likes predictible objects\n function Item$1(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item$1.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n var title$1 = 'browser';\n var platform$1 = 'browser';\n var browser$4 = true;\n var env$1 = {};\n var argv$1 = [];\n var version$2 = ''; // empty string to avoid regexp issues\n var versions$1 = {};\n var release$1 = {};\n var config$1 = {};\n\n function noop$1() {}\n\n var on$1 = noop$1;\n var addListener$1 = noop$1;\n var once$1 = noop$1;\n var off$1 = noop$1;\n var removeListener$1 = noop$1;\n var removeAllListeners$1 = noop$1;\n var emit$1 = noop$1;\n\n function binding$1(name) {\n throw new Error('process.binding is not supported');\n }\n\n function cwd$1 () { return '/' }\n function chdir$1 (dir) {\n throw new Error('process.chdir is not supported');\n }function umask$1() { return 0; }\n\n // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\n var performance$1 = global$1.performance || {};\n var performanceNow$1 =\n performance$1.now ||\n performance$1.mozNow ||\n performance$1.msNow ||\n performance$1.oNow ||\n performance$1.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n // generate timestamp or delta\n // see http://nodejs.org/api/process.html#process_process_hrtime\n function hrtime$1(previousTimestamp){\n var clocktime = performanceNow$1.call(performance$1)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n }\n\n var startTime$1 = new Date();\n function uptime$1() {\n var currentTime = new Date();\n var dif = currentTime - startTime$1;\n return dif / 1000;\n }\n\n var process = {\n nextTick: nextTick$1,\n title: title$1,\n browser: browser$4,\n env: env$1,\n argv: argv$1,\n version: version$2,\n versions: versions$1,\n on: on$1,\n addListener: addListener$1,\n once: once$1,\n off: off$1,\n removeListener: removeListener$1,\n removeAllListeners: removeAllListeners$1,\n emit: emit$1,\n binding: binding$1,\n cwd: cwd$1,\n chdir: chdir$1,\n umask: umask$1,\n hrtime: hrtime$1,\n platform: platform$1,\n release: release$1,\n config: config$1,\n uptime: uptime$1\n };\n\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n function getAugmentedNamespace(n) {\n \tif (n.__esModule) return n;\n \tvar a = Object.defineProperty({}, '__esModule', {value: true});\n \tObject.keys(n).forEach(function (k) {\n \t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n \t\tObject.defineProperty(a, k, d.get ? d : {\n \t\t\tenumerable: true,\n \t\t\tget: function () {\n \t\t\t\treturn n[k];\n \t\t\t}\n \t\t});\n \t});\n \treturn a;\n }\n\n function commonjsRequire (path) {\n \tthrow new Error('Could not dynamically require \"' + path + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');\n }\n\n var domain;\n\n // This constructor is used to store event handlers. Instantiating this is\n // faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n // object (tested with v8 v4.9).\n function EventHandlers() {}\n EventHandlers.prototype = Object.create(null);\n\n function EventEmitter$2() {\n EventEmitter$2.init.call(this);\n }\n\n // nodejs oddity\n // require('events') === require('events').EventEmitter\n EventEmitter$2.EventEmitter = EventEmitter$2;\n\n EventEmitter$2.usingDomains = false;\n\n EventEmitter$2.prototype.domain = undefined;\n EventEmitter$2.prototype._events = undefined;\n EventEmitter$2.prototype._maxListeners = undefined;\n\n // By default EventEmitters will print a warning if more than 10 listeners are\n // added to it. This is a useful default which helps finding memory leaks.\n EventEmitter$2.defaultMaxListeners = 10;\n\n EventEmitter$2.init = function() {\n this.domain = null;\n if (EventEmitter$2.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active ) ;\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n };\n\n // Obviously not all Emitters should be limited to 10. This function allows\n // that to be increased. Set to zero for unlimited.\n EventEmitter$2.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n };\n\n function $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter$2.defaultMaxListeners;\n return that._maxListeners;\n }\n\n EventEmitter$2.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n };\n\n // These standalone emit* functions are used to optimize calling of event\n // handlers for fast cases because emit() itself often has a variable number of\n // arguments and can be deoptimized because of that. These functions always have\n // the same number of arguments and thus do not get deoptimized, so the code\n // inside them can execute faster.\n function emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n }\n function emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n }\n function emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n }\n function emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n }\n\n function emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n }\n\n EventEmitter$2.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n };\n\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning$1(w);\n }\n }\n }\n\n return target;\n }\n function emitWarning$1(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n }\n EventEmitter$2.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n\n EventEmitter$2.prototype.on = EventEmitter$2.prototype.addListener;\n\n EventEmitter$2.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\n function _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n }\n\n EventEmitter$2.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n\n EventEmitter$2.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n // emits a 'removeListener' event iff the listener was removed\n EventEmitter$2.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n \n // Alias for removeListener added in NodeJS 10.0\n // https://nodejs.org/api/events.html#events_emitter_off_eventname_listener\n EventEmitter$2.prototype.off = function(type, listener){\n return this.removeListener(type, listener);\n };\n\n EventEmitter$2.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\n EventEmitter$2.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n };\n\n EventEmitter$2.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount$1.call(emitter, type);\n }\n };\n\n EventEmitter$2.prototype.listenerCount = listenerCount$1;\n function listenerCount$1(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n }\n\n EventEmitter$2.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n };\n\n // About 1.5x faster than the two-arg version of Array#splice().\n function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n }\n\n function arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n }\n\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n\n var _polyfillNode_events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': EventEmitter$2,\n EventEmitter: EventEmitter$2\n });\n\n var lookup$1 = [];\n var revLookup$1 = [];\n var Arr$1 = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var inited$1 = false;\n function init$1 () {\n inited$1 = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup$1[i] = code[i];\n revLookup$1[code.charCodeAt(i)] = i;\n }\n\n revLookup$1['-'.charCodeAt(0)] = 62;\n revLookup$1['_'.charCodeAt(0)] = 63;\n }\n\n function toByteArray$1 (b64) {\n if (!inited$1) {\n init$1();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr$1(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup$1[b64.charCodeAt(i)] << 18) | (revLookup$1[b64.charCodeAt(i + 1)] << 12) | (revLookup$1[b64.charCodeAt(i + 2)] << 6) | revLookup$1[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup$1[b64.charCodeAt(i)] << 2) | (revLookup$1[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup$1[b64.charCodeAt(i)] << 10) | (revLookup$1[b64.charCodeAt(i + 1)] << 4) | (revLookup$1[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n }\n\n function tripletToBase64$1 (num) {\n return lookup$1[num >> 18 & 0x3F] + lookup$1[num >> 12 & 0x3F] + lookup$1[num >> 6 & 0x3F] + lookup$1[num & 0x3F]\n }\n\n function encodeChunk$1 (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64$1(tmp));\n }\n return output.join('')\n }\n\n function fromByteArray$1 (uint8) {\n if (!inited$1) {\n init$1();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk$1(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup$1[tmp >> 2];\n output += lookup$1[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup$1[tmp >> 10];\n output += lookup$1[(tmp >> 4) & 0x3F];\n output += lookup$1[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n }\n\n function read$1 (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n }\n\n function write$1 (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n }\n\n var toString$2 = {}.toString;\n\n var isArray$2 = Array.isArray || function (arr) {\n return toString$2.call(arr) == '[object Array]';\n };\n\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n var INSPECT_MAX_BYTES$1 = 50;\n\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n Buffer$1.TYPED_ARRAY_SUPPORT = global$2.TYPED_ARRAY_SUPPORT !== undefined\n ? global$2.TYPED_ARRAY_SUPPORT\n : true;\n\n function kMaxLength$1 () {\n return Buffer$1.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n }\n\n function createBuffer$1 (that, length) {\n if (kMaxLength$1() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$1(length);\n }\n that.length = length;\n }\n\n return that\n }\n\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n function Buffer$1 (arg, encodingOrOffset, length) {\n if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {\n return new Buffer$1(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe$1(this, arg)\n }\n return from$1(this, arg, encodingOrOffset, length)\n }\n\n Buffer$1.poolSize = 8192; // not used by this implementation\n\n // TODO: Legacy, not needed anymore. Remove in next major version.\n Buffer$1._augment = function (arr) {\n arr.__proto__ = Buffer$1.prototype;\n return arr\n };\n\n function from$1 (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer$1(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString$1(that, value, encodingOrOffset)\n }\n\n return fromObject$1(that, value)\n }\n\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n Buffer$1.from = function (value, encodingOrOffset, length) {\n return from$1(null, value, encodingOrOffset, length)\n };\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n Buffer$1.prototype.__proto__ = Uint8Array.prototype;\n Buffer$1.__proto__ = Uint8Array;\n }\n\n function assertSize$1 (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n }\n\n function alloc$1 (that, size, fill, encoding) {\n assertSize$1(size);\n if (size <= 0) {\n return createBuffer$1(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer$1(that, size).fill(fill, encoding)\n : createBuffer$1(that, size).fill(fill)\n }\n return createBuffer$1(that, size)\n }\n\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n Buffer$1.alloc = function (size, fill, encoding) {\n return alloc$1(null, size, fill, encoding)\n };\n\n function allocUnsafe$1 (that, size) {\n assertSize$1(size);\n that = createBuffer$1(that, size < 0 ? 0 : checked$1(size) | 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n }\n\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n Buffer$1.allocUnsafe = function (size) {\n return allocUnsafe$1(null, size)\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n Buffer$1.allocUnsafeSlow = function (size) {\n return allocUnsafe$1(null, size)\n };\n\n function fromString$1 (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$1.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength$1(string, encoding) | 0;\n that = createBuffer$1(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n }\n\n function fromArrayLike$1 (that, array) {\n var length = array.length < 0 ? 0 : checked$1(array.length) | 0;\n that = createBuffer$1(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n }\n\n function fromArrayBuffer$1 (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike$1(that, array);\n }\n return that\n }\n\n function fromObject$1 (that, obj) {\n if (internalIsBuffer$1(obj)) {\n var len = checked$1(obj.length) | 0;\n that = createBuffer$1(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan$1(obj.length)) {\n return createBuffer$1(that, 0)\n }\n return fromArrayLike$1(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray$2(obj.data)) {\n return fromArrayLike$1(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n }\n\n function checked$1 (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength$1()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength$1().toString(16) + ' bytes')\n }\n return length | 0\n }\n Buffer$1.isBuffer = isBuffer$2;\n function internalIsBuffer$1 (b) {\n return !!(b != null && b._isBuffer)\n }\n\n Buffer$1.compare = function compare (a, b) {\n if (!internalIsBuffer$1(a) || !internalIsBuffer$1(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n };\n\n Buffer$1.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n };\n\n Buffer$1.concat = function concat (list, length) {\n if (!isArray$2(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer$1.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer$1.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer$1(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n };\n\n function byteLength$1 (string, encoding) {\n if (internalIsBuffer$1(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes$1(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes$1(string).length\n default:\n if (loweredCase) return utf8ToBytes$1(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer$1.byteLength = byteLength$1;\n\n function slowToString$1 (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice$1(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice$1(this, start, end)\n\n case 'ascii':\n return asciiSlice$1(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice$1(this, start, end)\n\n case 'base64':\n return base64Slice$1(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice$1(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n // Buffer instances.\n Buffer$1.prototype._isBuffer = true;\n\n function swap$1 (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer$1.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap$1(this, i, i + 1);\n }\n return this\n };\n\n Buffer$1.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap$1(this, i, i + 3);\n swap$1(this, i + 1, i + 2);\n }\n return this\n };\n\n Buffer$1.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap$1(this, i, i + 7);\n swap$1(this, i + 1, i + 6);\n swap$1(this, i + 2, i + 5);\n swap$1(this, i + 3, i + 4);\n }\n return this\n };\n\n Buffer$1.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice$1(this, 0, length)\n return slowToString$1.apply(this, arguments)\n };\n\n Buffer$1.prototype.equals = function equals (b) {\n if (!internalIsBuffer$1(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer$1.compare(this, b) === 0\n };\n\n Buffer$1.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES$1;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n };\n\n Buffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer$1(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n };\n\n // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n function bidirectionalIndexOf$1 (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer$1.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer$1(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf$1(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer$1.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf$1(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n }\n\n function arrayIndexOf$1 (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n }\n\n Buffer$1.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n };\n\n Buffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf$1(this, val, byteOffset, encoding, true)\n };\n\n Buffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf$1(this, val, byteOffset, encoding, false)\n };\n\n function hexWrite$1 (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n }\n\n function utf8Write$1 (buf, string, offset, length) {\n return blitBuffer$1(utf8ToBytes$1(string, buf.length - offset), buf, offset, length)\n }\n\n function asciiWrite$1 (buf, string, offset, length) {\n return blitBuffer$1(asciiToBytes$1(string), buf, offset, length)\n }\n\n function latin1Write$1 (buf, string, offset, length) {\n return asciiWrite$1(buf, string, offset, length)\n }\n\n function base64Write$1 (buf, string, offset, length) {\n return blitBuffer$1(base64ToBytes$1(string), buf, offset, length)\n }\n\n function ucs2Write$1 (buf, string, offset, length) {\n return blitBuffer$1(utf16leToBytes$1(string, buf.length - offset), buf, offset, length)\n }\n\n Buffer$1.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite$1(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write$1(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite$1(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write$1(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write$1(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write$1(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer$1.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n };\n\n function base64Slice$1 (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray$1(buf)\n } else {\n return fromByteArray$1(buf.slice(start, end))\n }\n }\n\n function utf8Slice$1 (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray$1(res)\n }\n\n // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n var MAX_ARGUMENTS_LENGTH$1 = 0x1000;\n\n function decodeCodePointsArray$1 (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH$1) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH$1)\n );\n }\n return res\n }\n\n function asciiSlice$1 (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n }\n\n function latin1Slice$1 (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n }\n\n function hexSlice$1 (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex$1(buf[i]);\n }\n return out\n }\n\n function utf16leSlice$1 (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n }\n\n Buffer$1.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$1.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$1(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n };\n\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n function checkOffset$1 (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n }\n\n Buffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset$1(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n };\n\n Buffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset$1(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n };\n\n Buffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 1, this.length);\n return this[offset]\n };\n\n Buffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n };\n\n Buffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n };\n\n Buffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n };\n\n Buffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n };\n\n Buffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset$1(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n };\n\n Buffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset$1(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n };\n\n Buffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n };\n\n Buffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n };\n\n Buffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n };\n\n Buffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n };\n\n Buffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n };\n\n Buffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 4, this.length);\n return read$1(this, offset, true, 23, 4)\n };\n\n Buffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 4, this.length);\n return read$1(this, offset, false, 23, 4)\n };\n\n Buffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 8, this.length);\n return read$1(this, offset, true, 52, 8)\n };\n\n Buffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset$1(offset, 8, this.length);\n return read$1(this, offset, false, 52, 8)\n };\n\n function checkInt$1 (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer$1(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n }\n\n Buffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt$1(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt$1(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 1, 0xff, 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n };\n\n function objectWriteUInt16$1 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n }\n\n Buffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16$1(this, value, offset, true);\n }\n return offset + 2\n };\n\n Buffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16$1(this, value, offset, false);\n }\n return offset + 2\n };\n\n function objectWriteUInt32$1 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n }\n\n Buffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32$1(this, value, offset, true);\n }\n return offset + 4\n };\n\n Buffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32$1(this, value, offset, false);\n }\n return offset + 4\n };\n\n Buffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt$1(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt$1(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n };\n\n Buffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16$1(this, value, offset, true);\n }\n return offset + 2\n };\n\n Buffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16$1(this, value, offset, false);\n }\n return offset + 2\n };\n\n Buffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32$1(this, value, offset, true);\n }\n return offset + 4\n };\n\n Buffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt$1(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32$1(this, value, offset, false);\n }\n return offset + 4\n };\n\n function checkIEEE754$1 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n }\n\n function writeFloat$1 (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754$1(buf, value, offset, 4);\n }\n write$1(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n }\n\n Buffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat$1(this, value, offset, true, noAssert)\n };\n\n Buffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat$1(this, value, offset, false, noAssert)\n };\n\n function writeDouble$1 (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754$1(buf, value, offset, 8);\n }\n write$1(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n }\n\n Buffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble$1(this, value, offset, true, noAssert)\n };\n\n Buffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble$1(this, value, offset, false, noAssert)\n };\n\n // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n Buffer$1.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n };\n\n // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n Buffer$1.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer$1(val)\n ? val\n : utf8ToBytes$1(new Buffer$1(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n };\n\n // HELPER FUNCTIONS\n // ================\n\n var INVALID_BASE64_RE$1 = /[^+\\/0-9A-Za-z-_]/g;\n\n function base64clean$1 (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim$1(str).replace(INVALID_BASE64_RE$1, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n }\n\n function stringtrim$1 (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n }\n\n function toHex$1 (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n }\n\n function utf8ToBytes$1 (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n }\n\n function asciiToBytes$1 (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n }\n\n function utf16leToBytes$1 (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n }\n\n\n function base64ToBytes$1 (str) {\n return toByteArray$1(base64clean$1(str))\n }\n\n function blitBuffer$1 (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n }\n\n function isnan$1 (val) {\n return val !== val // eslint-disable-line no-self-compare\n }\n\n\n // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n // The _isBuffer check is for Safari 5-7 support, because it's missing\n // Object.prototype.constructor. Remove this eventually\n function isBuffer$2(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer$1(obj) || isSlowBuffer$1(obj))\n }\n\n function isFastBuffer$1 (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n }\n\n // For Node v0.10 support. Remove this eventually.\n function isSlowBuffer$1 (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer$1(obj.slice(0, 0))\n }\n\n // shim for using process in browser\n // based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n }\n var cachedSetTimeout = defaultSetTimout;\n var cachedClearTimeout = defaultClearTimeout;\n if (typeof global$2.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n }\n if (typeof global$2.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n }\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }\n // v8 likes predictible objects\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n var title = 'browser';\n var platform = 'browser';\n var browser$3 = true;\n var env = {};\n var argv = [];\n var version$1 = ''; // empty string to avoid regexp issues\n var versions = {};\n var release = {};\n var config = {};\n\n function noop() {}\n\n var on = noop;\n var addListener = noop;\n var once = noop;\n var off = noop;\n var removeListener = noop;\n var removeAllListeners = noop;\n var emit = noop;\n\n function binding(name) {\n throw new Error('process.binding is not supported');\n }\n\n function cwd () { return '/' }\n function chdir (dir) {\n throw new Error('process.chdir is not supported');\n }function umask() { return 0; }\n\n // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\n var performance = global$2.performance || {};\n var performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n // generate timestamp or delta\n // see http://nodejs.org/api/process.html#process_process_hrtime\n function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n }\n\n var startTime = new Date();\n function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n }\n\n var browser$1$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser$3,\n env: env,\n argv: argv,\n version: version$1,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n };\n\n var inherits$2;\n if (typeof Object.create === 'function'){\n inherits$2 = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n } else {\n inherits$2 = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n }\n var inherits$3 = inherits$2;\n\n var formatRegExp = /%[sdj%]/g;\n function format$1(f) {\n if (!isString$1(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n }\n\n // Mark that a method should not be used.\n // Returns a modified function which warns once by default.\n // If --no-deprecation is set, then it is a no-op.\n function deprecate$1(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global$2.process)) {\n return function() {\n return deprecate$1(fn, msg).apply(this, arguments);\n };\n }\n\n if (browser$1$1.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (browser$1$1.throwDeprecation) {\n throw new Error(msg);\n } else if (browser$1$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n }\n\n var debugs = {};\n var debugEnviron;\n function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = browser$1$1.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format$1.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n }\n\n /**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n /* legacy: obj, showHidden, depth, colors*/\n function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n\n // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n inspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n };\n\n // Don't use 'blue' not visible on cmd.exe\n inspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n };\n\n\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n }\n\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n\n function arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n }\n\n\n function formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString$1(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError$1(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError$1(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray$1(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError$1(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n }\n\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString$1(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n }\n\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n }\n\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n\n function reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n }\n\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n function isArray$1(ar) {\n return Array.isArray(ar);\n }\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n function isNull(arg) {\n return arg === null;\n }\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n function isString$1(arg) {\n return typeof arg === 'string';\n }\n\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n function isError$1(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n }\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n }\n\n function isBuffer$1(maybeBuf) {\n return Buffer$1.isBuffer(maybeBuf);\n }\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n\n function pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n }\n\n\n var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n // 26 Feb 16:19:34\n function timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n }\n\n\n // log is just a thin wrapper to console.log that prepends a timestamp\n function log() {\n console.log('%s - %s', timestamp(), format$1.apply(null, arguments));\n }\n\n function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n }\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n var _polyfillNode_util = {\n inherits: inherits$3,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer$1,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError$1,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString$1,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray$1,\n inspect: inspect,\n deprecate: deprecate$1,\n format: format$1,\n debuglog: debuglog\n };\n\n var _polyfillNode_util$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n format: format$1,\n deprecate: deprecate$1,\n debuglog: debuglog,\n inspect: inspect,\n isArray: isArray$1,\n isBoolean: isBoolean,\n isNull: isNull,\n isNullOrUndefined: isNullOrUndefined,\n isNumber: isNumber,\n isString: isString$1,\n isSymbol: isSymbol,\n isUndefined: isUndefined,\n isRegExp: isRegExp,\n isObject: isObject,\n isDate: isDate,\n isError: isError$1,\n isFunction: isFunction,\n isPrimitive: isPrimitive,\n isBuffer: isBuffer$1,\n log: log,\n inherits: inherits$3,\n _extend: _extend,\n 'default': _polyfillNode_util\n });\n\n function BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer$1.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer$1.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n // Copyright Joyent, Inc. and other Node contributors.\n var isBufferEncoding = Buffer$1.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\n function assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n }\n\n // StringDecoder provides an interface for efficiently splitting a series of\n // buffers into a series of JS strings without breaking apart multi-byte\n // characters. CESU-8 is handled as part of the UTF-8 encoding.\n //\n // @TODO Handling all encodings inside a single object makes it very difficult\n // to reason about this code, so it should be split up in the future.\n // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n // points as used by CESU-8.\n function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer$1(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n }\n\n // write decodes the given buffer and returns it as JS string that is\n // guaranteed to not contain any partial multi-byte characters. Any partial\n // character found at the end of the buffer is buffered up, and will be\n // returned when calling write again with the remaining bytes.\n //\n // Note: Converting a Buffer containing an orphan surrogate to a String\n // currently works, but converting a String to a Buffer (via `new Buffer`, or\n // Buffer#write) will replace incomplete surrogates with the unicode\n // replacement character. See https://codereview.chromium.org/121173009/ .\n StringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n };\n\n // detectIncompleteChar determines if there is an incomplete UTF-8 character at\n // the end of the given buffer. If so, it sets this.charLength to the byte\n // length that character, and sets this.charReceived to the number of bytes\n // that are available for this character.\n StringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n };\n\n StringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n };\n\n function passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n }\n\n function utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n }\n\n function base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n }\n\n Readable.ReadableState = ReadableState;\n\n var debug$2 = debuglog('stream');\n inherits$3(Readable, EventEmitter$2);\n\n function prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n }\n function listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n }\n function ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter$2.call(this);\n }\n\n // Manually shove something into the read() buffer.\n // This returns true if the highWaterMark has not been hit yet,\n // similar to how Writable.write() returns true if you should\n // write() some more.\n Readable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer$1.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n };\n\n // Unshift should *always* be something directly out of read()\n Readable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n };\n\n Readable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n };\n\n function readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n }\n\n // if it's past the high water mark, we can push in some more.\n // Also, if we have no data yet, we can stand some\n // more bytes. This is to work around cases where hwm=0,\n // such as the repl. Also, if the push() triggered a\n // readable event, and the user called read(largeNumber) such that\n // needReadable was set, then we ought to push more, so that another\n // 'readable' event will be triggered.\n function needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n }\n\n // backwards compatibility.\n Readable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n };\n\n // Don't raise the hwm > 8MB\n var MAX_HWM = 0x800000;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n\n // you can override either this method, or the async _read(n) below.\n Readable.prototype.read = function (n) {\n debug$2('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug$2('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug$2('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug$2('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug$2('reading or ended', doRead);\n } else if (doRead) {\n debug$2('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n };\n\n function chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n }\n\n function onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n }\n\n // Don't emit readable right away in sync mode, because this can trigger\n // another read() call => stack overflow. This way, it might trigger\n // a nextTick recursion warning, but that's not so bad.\n function emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug$2('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n }\n\n function emitReadable_(stream) {\n debug$2('emit readable');\n stream.emit('readable');\n flow(stream);\n }\n\n // at this point, the user has presumably seen the 'readable' event,\n // and called read() to consume some data. that may have triggered\n // in turn another _read(n) call, in which case reading = true if\n // it's in progress.\n // However, if we're not ended, or reading, and the length < hwm,\n // then go ahead and try to read some more preemptively.\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n }\n\n function maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug$2('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n }\n\n // abstract method. to be overridden in specific implementation classes.\n // call cb(er, data) where data is <= n in length.\n // for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n // arbitrary, and perhaps not very meaningful.\n Readable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n };\n\n Readable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug$2('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug$2('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug$2('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug$2('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug$2('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug$2('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug$2('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug$2('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug$2('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug$2('pipe resume');\n src.resume();\n }\n\n return dest;\n };\n\n function pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug$2('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n\n Readable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n };\n\n // set up data events if they are asked for\n // Ensure readable listeners eventually get something\n Readable.prototype.on = function (ev, fn) {\n var res = EventEmitter$2.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n\n function nReadingNextTick(self) {\n debug$2('readable nexttick read 0');\n self.read(0);\n }\n\n // pause() and resume() are remnants of the legacy readable stream API\n // If the user uses them, then switch into old mode.\n Readable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug$2('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n };\n\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n }\n\n function resume_(stream, state) {\n if (!state.reading) {\n debug$2('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n }\n\n Readable.prototype.pause = function () {\n debug$2('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug$2('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n };\n\n function flow(stream) {\n var state = stream._readableState;\n debug$2('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n }\n\n // wrap an old-style stream as the async data source.\n // This is *not* part of the readable stream interface.\n // It is an ugly unfortunate mess of history.\n Readable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug$2('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug$2('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug$2('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n };\n\n // exposed for testing purposes only.\n Readable._fromList = fromList;\n\n // Pluck off n bytes from an array of buffers.\n // Length is the combined lengths of all the buffers in the list.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n }\n\n // Extracts only enough buffered data to satisfy the amount requested.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n }\n\n // Copies a specified amount of characters from the list of buffered data\n // chunks.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n }\n\n // Copies a specified amount of bytes from the list of buffered data chunks.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function copyFromBuffer(n, list) {\n var ret = Buffer$1.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n }\n\n function endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n }\n\n function endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n }\n\n function forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n }\n\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n }\n\n // A bit simpler than readable streams.\n Writable.WritableState = WritableState;\n inherits$3(Writable, EventEmitter$2);\n\n function nop() {}\n\n function WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n }\n\n function WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate$1(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n\n WritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter$2.call(this);\n }\n\n // Otherwise people can pipe Writable streams, which is just wrong.\n Writable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n };\n\n function writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n }\n\n // If we get something that is not a buffer, string, null, or undefined,\n // and we're not in objectMode, then that's an error.\n // Otherwise stream chunks are all considered to be of length=1, and the\n // watermarks determine how many objects to keep in the buffer, rather than\n // how many bytes or characters.\n function validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n }\n\n Writable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n };\n\n Writable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n };\n\n Writable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n };\n\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer$1.from(chunk, encoding);\n }\n return chunk;\n }\n\n // if we're already writing something, then just put this\n // in the queue, and wait our turn. Otherwise, call _write\n // If we return false, then we need a drain event, so set that flag.\n function writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n }\n\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n }\n\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n\n function afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n\n // Must force callback to be called on nextTick, so that we don't\n // emit 'drain' before the write() consumer gets the 'false' return\n // value, and has a chance to attach a 'drain' listener.\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n }\n\n // if there's something in the buffer waiting, then process it\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n\n Writable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n };\n\n Writable.prototype._writev = null;\n\n Writable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n };\n\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n\n function prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n }\n\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n\n // It seems a linked list but it is not\n // there will be only 2 of these for each stream\n function CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n }\n\n inherits$3(Duplex, Readable);\n\n var keys = Object.keys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n }\n\n // the no-half-open enforcer\n function onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n }\n\n function onEndNT(self) {\n self.end();\n }\n\n // a transform stream is a readable/writable stream where you do\n inherits$3(Transform, Duplex);\n\n function TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n }\n\n function afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n }\n\n Transform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n\n // This is the part where you do stuff!\n // override this function in implementation classes.\n // 'chunk' is an input chunk.\n //\n // Call `push(newChunk)` to pass along transformed output\n // to the readable side. You may call 'push' zero or more times.\n //\n // Call `cb(err)` when you are done with this chunk. If you pass\n // an error, then that'll put the hurt on the whole operation. If you\n // never call cb(), then you'll never get another chunk.\n Transform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n };\n\n Transform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n };\n\n // Doesn't matter what the args are here.\n // _transform does all the work.\n // That we got here means that the readable side wants more data.\n Transform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n };\n\n function done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n }\n\n inherits$3(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n }\n\n PassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n };\n\n inherits$3(Stream, EventEmitter$2);\n Stream.Readable = Readable;\n Stream.Writable = Writable;\n Stream.Duplex = Duplex;\n Stream.Transform = Transform;\n Stream.PassThrough = PassThrough;\n\n // Backwards-compat with node 0.4.x\n Stream.Stream = Stream;\n\n // old-style streams. Note that the pipe method (the only relevant\n // part of this class) is overridden in the Readable class.\n\n function Stream() {\n EventEmitter$2.call(this);\n }\n\n Stream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EventEmitter$2.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n };\n\n var _polyfillNode_stream = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': Stream,\n Readable: Readable,\n Writable: Writable,\n Duplex: Duplex,\n Transform: Transform,\n PassThrough: PassThrough,\n Stream: Stream\n });\n\n var require$$0$2 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_stream);\n\n var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_util$1);\n\n var WritableStream = require$$0$2.Writable;\n var inherits$1 = require$$0$1.inherits;\n\n var browserStdout = BrowserStdout;\n\n\n inherits$1(BrowserStdout, WritableStream);\n\n function BrowserStdout(opts) {\n if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)\n\n opts = opts || {};\n WritableStream.call(this, opts);\n this.label = (opts.label !== undefined) ? opts.label : 'stdout';\n }\n\n BrowserStdout.prototype._write = function(chunks, encoding, cb) {\n var output = chunks.toString ? chunks.toString() : chunks;\n if (this.label === false) {\n console.log(output);\n } else {\n console.log(this.label+':', output);\n }\n nextTick$1(cb);\n };\n\n /**\n * Parse the given `qs`.\n *\n * @private\n * @param {string} qs\n * @return {Object}\n */\n var parseQuery$1 = function parseQuery(qs) {\n return qs\n .replace('?', '')\n .split('&')\n .reduce(function (obj, pair) {\n var i = pair.indexOf('=');\n var key = pair.slice(0, i);\n var val = pair.slice(++i);\n\n // Due to how the URLSearchParams API treats spaces\n obj[key] = decodeURIComponent(val.replace(/\\+/g, '%20'));\n\n return obj;\n }, {});\n };\n\n /**\n * Highlight the given string of `js`.\n *\n * @private\n * @param {string} js\n * @return {string}\n */\n function highlight(js) {\n return js\n .replace(//g, '>')\n .replace(/\\/\\/(.*)/gm, '//$1')\n .replace(/('.*?')/gm, '$1')\n .replace(/(\\d+\\.\\d+)/gm, '$1')\n .replace(/(\\d+)/gm, '$1')\n .replace(\n /\\bnew[ \\t]+(\\w+)/gm,\n 'new $1'\n )\n .replace(\n /\\b(function|new|throw|return|var|if|else)\\b/gm,\n '$1'\n );\n }\n\n /**\n * Highlight the contents of tag `name`.\n *\n * @private\n * @param {string} name\n */\n var highlightTags$1 = function highlightTags(name) {\n var code = document.getElementById('mocha').getElementsByTagName(name);\n for (var i = 0, len = code.length; i < len; ++i) {\n code[i].innerHTML = highlight(code[i].innerHTML);\n }\n };\n\n var mocha$1 = {exports: {}};\n\n var escapeStringRegexp = string => {\n \tif (typeof string !== 'string') {\n \t\tthrow new TypeError('Expected a string');\n \t}\n\n \t// Escape characters with special meaning either inside or outside character sets.\n \t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n \treturn string\n \t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n \t\t.replace(/-/g, '\\\\x2d');\n };\n\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n // resolves . and .. elements in a path array with directory names there\n // must be no slashes, empty elements, or device names (c:\\) in the array\n // (so also no leading and trailing slashes - it does not distinguish\n // relative and absolute paths)\n function normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n }\n\n // Split a filename into [root, dir, basename, ext], unix version\n // 'root' is just a slash, or nothing.\n var splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n var splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n };\n\n // path.resolve([from ...], to)\n // posix version\n function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n }\n // path.normalize(path)\n // posix version\n function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n }\n // posix version\n function isAbsolute(path) {\n return path.charAt(0) === '/';\n }\n\n // posix version\n function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n }\n\n\n // path.relative(from, to)\n // posix version\n function relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n }\n\n var sep = '/';\n var delimiter = ':';\n\n function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n }\n\n function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n }\n\n\n function extname(path) {\n return splitPath(path)[3];\n }\n var _polyfillNode_path = {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n };\n function filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n }\n\n // String.prototype.substr - negative index don't work in IE8\n var substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n ;\n\n var _polyfillNode_path$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n resolve: resolve,\n normalize: normalize,\n isAbsolute: isAbsolute,\n join: join,\n relative: relative,\n sep: sep,\n delimiter: delimiter,\n dirname: dirname,\n basename: basename,\n extname: extname,\n 'default': _polyfillNode_path\n });\n\n var require$$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_path$1);\n\n var reporters = {};\n\n var base$1 = {exports: {}};\n\n var lib = {};\n\n var base = {};\n\n /*istanbul ignore start*/\n\n (function (exports) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = Diff;\n\n /*istanbul ignore end*/\n function Diff() {}\n\n Diff.prototype = {\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n diff: function diff(oldString, newString) {\n /*istanbul ignore start*/\n var\n /*istanbul ignore end*/\n options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath =\n /*istanbul ignore start*/\n void 0\n /*istanbul ignore end*/\n ;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n castInput: function castInput(value) {\n return value;\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n tokenize: function tokenize(value) {\n return value.split('');\n },\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n join: function join(chars) {\n return chars.join('');\n }\n };\n\n function buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n }\n\n function clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n }\n\n }(base));\n\n var character = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(character, \"__esModule\", {\n value: true\n });\n character.diffChars = diffChars;\n character.characterDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base$6 = _interopRequireDefault$7(base)\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$7(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n var characterDiff = new\n /*istanbul ignore start*/\n _base$6\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ]();\n\n /*istanbul ignore start*/\n character.characterDiff = characterDiff;\n\n /*istanbul ignore end*/\n function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n }\n\n var word = {};\n\n var params = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(params, \"__esModule\", {\n value: true\n });\n params.generateOptions = generateOptions;\n\n /*istanbul ignore end*/\n function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n }\n\n /*istanbul ignore start*/\n\n Object.defineProperty(word, \"__esModule\", {\n value: true\n });\n word.diffWords = diffWords;\n word.diffWordsWithSpace = diffWordsWithSpace;\n word.wordDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base$5 = _interopRequireDefault$6(base)\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _params$1 = params\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$6(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n //\n // Ranges and exceptions:\n // Latin-1 Supplement, 0080–00FF\n // - U+00D7 × Multiplication sign\n // - U+00F7 ÷ Division sign\n // Latin Extended-A, 0100–017F\n // Latin Extended-B, 0180–024F\n // IPA Extensions, 0250–02AF\n // Spacing Modifier Letters, 02B0–02FF\n // - U+02C7 ˇ ˇ Caron\n // - U+02D8 ˘ ˘ Breve\n // - U+02D9 ˙ ˙ Dot Above\n // - U+02DA ˚ ˚ Ring Above\n // - U+02DB ˛ ˛ Ogonek\n // - U+02DC ˜ ˜ Small Tilde\n // - U+02DD ˝ ˝ Double Acute Accent\n // Latin Extended Additional, 1E00–1EFF\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n var reWhitespace = /\\S/;\n var wordDiff = new\n /*istanbul ignore start*/\n _base$5\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ]();\n\n /*istanbul ignore start*/\n word.wordDiff = wordDiff;\n\n /*istanbul ignore end*/\n wordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n };\n\n wordDiff.tokenize = function (value) {\n // All whitespace symbols except newline group into one token, each newline - in separate token\n var tokens = value.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n };\n\n function diffWords(oldStr, newStr, options) {\n options =\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _params$1\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n generateOptions)\n /*istanbul ignore end*/\n (options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n function diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n var line = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(line, \"__esModule\", {\n value: true\n });\n line.diffLines = diffLines;\n line.diffTrimmedLines = diffTrimmedLines;\n line.lineDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base$4 = _interopRequireDefault$5(base)\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _params = params\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$5(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n var lineDiff = new\n /*istanbul ignore start*/\n _base$4\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ]();\n\n /*istanbul ignore start*/\n line.lineDiff = lineDiff;\n\n /*istanbul ignore end*/\n lineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n };\n\n function diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n }\n\n function diffTrimmedLines(oldStr, newStr, callback) {\n var options =\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _params\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n generateOptions)\n /*istanbul ignore end*/\n (callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n }\n\n var sentence = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(sentence, \"__esModule\", {\n value: true\n });\n sentence.diffSentences = diffSentences;\n sentence.sentenceDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base$3 = _interopRequireDefault$4(base)\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$4(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n var sentenceDiff = new\n /*istanbul ignore start*/\n _base$3\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ]();\n\n /*istanbul ignore start*/\n sentence.sentenceDiff = sentenceDiff;\n\n /*istanbul ignore end*/\n sentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n };\n\n function diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n }\n\n var css = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(css, \"__esModule\", {\n value: true\n });\n css.diffCss = diffCss;\n css.cssDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base$2 = _interopRequireDefault$3(base)\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$3(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n var cssDiff = new\n /*istanbul ignore start*/\n _base$2\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ]();\n\n /*istanbul ignore start*/\n css.cssDiff = cssDiff;\n\n /*istanbul ignore end*/\n cssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n };\n\n function diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n }\n\n var json$1 = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(json$1, \"__esModule\", {\n value: true\n });\n json$1.diffJson = diffJson;\n json$1.canonicalize = canonicalize;\n json$1.jsonDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base$1 = _interopRequireDefault$2(base)\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _line$1 = line\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n /*istanbul ignore end*/\n var objectPrototypeToString = Object.prototype.toString;\n var jsonDiff = new\n /*istanbul ignore start*/\n _base$1\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ](); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n /*istanbul ignore start*/\n json$1.jsonDiff = jsonDiff;\n\n /*istanbul ignore end*/\n jsonDiff.useLongestToken = true;\n jsonDiff.tokenize =\n /*istanbul ignore start*/\n _line$1\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n lineDiff\n /*istanbul ignore end*/\n .tokenize;\n\n jsonDiff.castInput = function (value) {\n /*istanbul ignore start*/\n var _this$options =\n /*istanbul ignore end*/\n this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v)\n /*istanbul ignore start*/\n {\n return (\n /*istanbul ignore end*/\n typeof v === 'undefined' ? undefinedReplacement : v\n );\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n };\n\n jsonDiff.equals = function (left, right) {\n return (\n /*istanbul ignore start*/\n _base$1\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ].prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'))\n );\n };\n\n function diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n } // This function handles the presence of circular references by bailing out when encountering an\n // object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n\n function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (\n /*istanbul ignore start*/\n _typeof(\n /*istanbul ignore end*/\n obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n }\n\n var array$1 = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(array$1, \"__esModule\", {\n value: true\n });\n array$1.diffArrays = diffArrays;\n array$1.arrayDiff = void 0;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base = _interopRequireDefault$1(base)\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n var arrayDiff = new\n /*istanbul ignore start*/\n _base\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ]();\n\n /*istanbul ignore start*/\n array$1.arrayDiff = arrayDiff;\n\n /*istanbul ignore end*/\n arrayDiff.tokenize = function (value) {\n return value.slice();\n };\n\n arrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n };\n\n function diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n }\n\n var apply = {};\n\n var parse$2 = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(parse$2, \"__esModule\", {\n value: true\n });\n parse$2.parsePatch = parsePatch;\n\n /*istanbul ignore end*/\n function parsePatch(uniDiff) {\n /*istanbul ignore start*/\n var\n /*istanbul ignore end*/\n options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n newStart: +chunkHeader[3],\n newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n lines: [],\n linedelimiters: []\n }; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart += 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart += 1;\n }\n\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n }\n\n var distanceIterator = {};\n\n /*istanbul ignore start*/\n\n (function (exports) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = _default;\n\n /*istanbul ignore end*/\n // Iterator that traverses in the range of [min, max], stepping\n // by distance from a given start position. I.e. for [0, 4], with\n // start of 2, this will iterate 2, 3, 1, 4, 0.\n function\n /*istanbul ignore start*/\n _default\n /*istanbul ignore end*/\n (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n }\n\n }(distanceIterator));\n\n /*istanbul ignore start*/\n\n Object.defineProperty(apply, \"__esModule\", {\n value: true\n });\n apply.applyPatch = applyPatch;\n apply.applyPatches = applyPatches;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _parse$1 = parse$2\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _distanceIterator = _interopRequireDefault(distanceIterator)\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n function applyPatch(source, uniDiff) {\n /*istanbul ignore start*/\n var\n /*istanbul ignore end*/\n options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff =\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _parse$1\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n parsePatch)\n /*istanbul ignore end*/\n (uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent)\n /*istanbul ignore start*/\n {\n return (\n /*istanbul ignore end*/\n line === patchContent\n );\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator =\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _distanceIterator\n /*istanbul ignore end*/\n [\n /*istanbul ignore start*/\n \"default\"\n /*istanbul ignore end*/\n ])(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n } // Wrapper that supports multiple file patches via callbacks.\n\n\n function applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff =\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _parse$1\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n parsePatch)\n /*istanbul ignore end*/\n (uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n }\n\n var merge$1 = {};\n\n var create = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(create, \"__esModule\", {\n value: true\n });\n create.structuredPatch = structuredPatch;\n create.formatPatch = formatPatch;\n create.createTwoFilesPatch = createTwoFilesPatch;\n create.createPatch = createPatch;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _line = line\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); }\n\n function _nonIterableSpread$1() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\n function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\n function _iterableToArray$1(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\n function _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); }\n\n function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n /*istanbul ignore end*/\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff =\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _line\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n diffLines)\n /*istanbul ignore end*/\n (oldStr, newStr, options);\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n /*istanbul ignore start*/\n var _loop = function _loop(\n /*istanbul ignore end*/\n i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n /*istanbul ignore start*/\n var _curRange;\n\n /*istanbul ignore end*/\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_curRange =\n /*istanbul ignore end*/\n curRange).push.apply(\n /*istanbul ignore start*/\n _curRange\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray$1(\n /*istanbul ignore end*/\n lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n /*istanbul ignore start*/\n var _curRange2;\n\n /*istanbul ignore end*/\n // Overlapping\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_curRange2 =\n /*istanbul ignore end*/\n curRange).push.apply(\n /*istanbul ignore start*/\n _curRange2\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray$1(\n /*istanbul ignore end*/\n contextLines(lines)));\n } else {\n /*istanbul ignore start*/\n var _curRange3;\n\n /*istanbul ignore end*/\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_curRange3 =\n /*istanbul ignore end*/\n curRange).push.apply(\n /*istanbul ignore start*/\n _curRange3\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray$1(\n /*istanbul ignore end*/\n contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n // however, if the old file is empty, do not output the no-nl line\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n /*istanbul ignore start*/\n _loop(\n /*istanbul ignore end*/\n i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n }\n\n function formatPatch(diff) {\n var ret = [];\n\n if (diff.oldFileName == diff.newFileName) {\n ret.push('Index: ' + diff.oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n }\n\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));\n }\n\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n }\n\n var array = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(array, \"__esModule\", {\n value: true\n });\n array.arrayEqual = arrayEqual;\n array.arrayStartsWith = arrayStartsWith;\n\n /*istanbul ignore end*/\n function arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n }\n\n function arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n /*istanbul ignore start*/\n\n Object.defineProperty(merge$1, \"__esModule\", {\n value: true\n });\n merge$1.calcLineCount = calcLineCount;\n merge$1.merge = merge;\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _create = create\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _parse = parse$2\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _array = array\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\n function _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\n function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\n function _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\n function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\n function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n /*istanbul ignore end*/\n function calcLineCount(hunk) {\n /*istanbul ignore start*/\n var _calcOldNewLineCount =\n /*istanbul ignore end*/\n calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n }\n\n function merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n }\n\n function loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return (\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _parse\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n parsePatch)\n /*istanbul ignore end*/\n (param)[0]\n );\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return (\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _create\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n structuredPatch)\n /*istanbul ignore end*/\n (undefined, undefined, base, param)\n );\n }\n\n return param;\n }\n\n function fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n }\n\n function selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n }\n\n function hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n }\n\n function cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n }\n\n function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n /*istanbul ignore start*/\n var _hunk$lines;\n\n /*istanbul ignore end*/\n // Mine inserted\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n /*istanbul ignore start*/\n var _hunk$lines2;\n\n /*istanbul ignore end*/\n // Theirs inserted\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines2 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines2\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n }\n\n function mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _array\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n arrayStartsWith)\n /*istanbul ignore end*/\n (myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n /*istanbul ignore start*/\n var _hunk$lines3;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines3 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines3\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n myChanges));\n\n return;\n } else if (\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _array\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n arrayStartsWith)\n /*istanbul ignore end*/\n (theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n /*istanbul ignore start*/\n var _hunk$lines4;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines4 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines4\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n theirChanges));\n\n return;\n }\n } else if (\n /*istanbul ignore start*/\n (/*istanbul ignore end*/\n\n /*istanbul ignore start*/\n 0, _array\n /*istanbul ignore end*/\n .\n /*istanbul ignore start*/\n arrayEqual)\n /*istanbul ignore end*/\n (myChanges, theirChanges)) {\n /*istanbul ignore start*/\n var _hunk$lines5;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines5 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines5\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n }\n\n function removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n /*istanbul ignore start*/\n var _hunk$lines6;\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n\n /*istanbul ignore end*/\n\n /*istanbul ignore start*/\n (_hunk$lines6 =\n /*istanbul ignore end*/\n hunk.lines).push.apply(\n /*istanbul ignore start*/\n _hunk$lines6\n /*istanbul ignore end*/\n ,\n /*istanbul ignore start*/\n _toConsumableArray(\n /*istanbul ignore end*/\n theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n }\n\n function conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n }\n\n function insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n }\n\n function insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n }\n\n function collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n }\n\n function collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n }\n\n function allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n }\n\n function skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n }\n\n function calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n }\n\n var dmp = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(dmp, \"__esModule\", {\n value: true\n });\n dmp.convertChangesToDMP = convertChangesToDMP;\n\n /*istanbul ignore end*/\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n function convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n }\n\n var xml = {};\n\n /*istanbul ignore start*/\n\n Object.defineProperty(xml, \"__esModule\", {\n value: true\n });\n xml.convertChangesToXML = convertChangesToXML;\n\n /*istanbul ignore end*/\n function convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('');\n } else if (change.removed) {\n ret.push('');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('');\n } else if (change.removed) {\n ret.push('');\n }\n }\n\n return ret.join('');\n }\n\n function escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&');\n n = n.replace(//g, '>');\n n = n.replace(/\"/g, '"');\n return n;\n }\n\n /*istanbul ignore start*/\n\n (function (exports) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(exports, \"Diff\", {\n enumerable: true,\n get: function get() {\n return _base[\"default\"];\n }\n });\n Object.defineProperty(exports, \"diffChars\", {\n enumerable: true,\n get: function get() {\n return _character.diffChars;\n }\n });\n Object.defineProperty(exports, \"diffWords\", {\n enumerable: true,\n get: function get() {\n return _word.diffWords;\n }\n });\n Object.defineProperty(exports, \"diffWordsWithSpace\", {\n enumerable: true,\n get: function get() {\n return _word.diffWordsWithSpace;\n }\n });\n Object.defineProperty(exports, \"diffLines\", {\n enumerable: true,\n get: function get() {\n return _line.diffLines;\n }\n });\n Object.defineProperty(exports, \"diffTrimmedLines\", {\n enumerable: true,\n get: function get() {\n return _line.diffTrimmedLines;\n }\n });\n Object.defineProperty(exports, \"diffSentences\", {\n enumerable: true,\n get: function get() {\n return _sentence.diffSentences;\n }\n });\n Object.defineProperty(exports, \"diffCss\", {\n enumerable: true,\n get: function get() {\n return _css.diffCss;\n }\n });\n Object.defineProperty(exports, \"diffJson\", {\n enumerable: true,\n get: function get() {\n return _json.diffJson;\n }\n });\n Object.defineProperty(exports, \"canonicalize\", {\n enumerable: true,\n get: function get() {\n return _json.canonicalize;\n }\n });\n Object.defineProperty(exports, \"diffArrays\", {\n enumerable: true,\n get: function get() {\n return _array.diffArrays;\n }\n });\n Object.defineProperty(exports, \"applyPatch\", {\n enumerable: true,\n get: function get() {\n return _apply.applyPatch;\n }\n });\n Object.defineProperty(exports, \"applyPatches\", {\n enumerable: true,\n get: function get() {\n return _apply.applyPatches;\n }\n });\n Object.defineProperty(exports, \"parsePatch\", {\n enumerable: true,\n get: function get() {\n return _parse.parsePatch;\n }\n });\n Object.defineProperty(exports, \"merge\", {\n enumerable: true,\n get: function get() {\n return _merge.merge;\n }\n });\n Object.defineProperty(exports, \"structuredPatch\", {\n enumerable: true,\n get: function get() {\n return _create.structuredPatch;\n }\n });\n Object.defineProperty(exports, \"createTwoFilesPatch\", {\n enumerable: true,\n get: function get() {\n return _create.createTwoFilesPatch;\n }\n });\n Object.defineProperty(exports, \"createPatch\", {\n enumerable: true,\n get: function get() {\n return _create.createPatch;\n }\n });\n Object.defineProperty(exports, \"convertChangesToDMP\", {\n enumerable: true,\n get: function get() {\n return _dmp.convertChangesToDMP;\n }\n });\n Object.defineProperty(exports, \"convertChangesToXML\", {\n enumerable: true,\n get: function get() {\n return _xml.convertChangesToXML;\n }\n });\n\n /*istanbul ignore end*/\n var\n /*istanbul ignore start*/\n _base = _interopRequireDefault(base)\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _character = character\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _word = word\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _line = line\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _sentence = sentence\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _css = css\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _json = json$1\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _array = array$1\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _apply = apply\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _parse = parse$2\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _merge = merge$1\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _create = create\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _dmp = dmp\n /*istanbul ignore end*/\n ;\n\n var\n /*istanbul ignore start*/\n _xml = xml\n /*istanbul ignore end*/\n ;\n\n /*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n /*istanbul ignore end*/\n\n }(lib));\n\n /**\n * Helpers.\n */\n\n var s$1 = 1000;\n var m$1 = s$1 * 60;\n var h$1 = m$1 * 60;\n var d$1 = h$1 * 24;\n var w$1 = d$1 * 7;\n var y$1 = d$1 * 365.25;\n\n /**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\n var ms$1 = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse$1(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong$1(val) : fmtShort$1(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n };\n\n /**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n function parse$1(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y$1;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w$1;\n case 'days':\n case 'day':\n case 'd':\n return n * d$1;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h$1;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m$1;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s$1;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n }\n\n /**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n function fmtShort$1(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d$1) {\n return Math.round(ms / d$1) + 'd';\n }\n if (msAbs >= h$1) {\n return Math.round(ms / h$1) + 'h';\n }\n if (msAbs >= m$1) {\n return Math.round(ms / m$1) + 'm';\n }\n if (msAbs >= s$1) {\n return Math.round(ms / s$1) + 's';\n }\n return ms + 'ms';\n }\n\n /**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n function fmtLong$1(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d$1) {\n return plural$1(ms, msAbs, d$1, 'day');\n }\n if (msAbs >= h$1) {\n return plural$1(ms, msAbs, h$1, 'hour');\n }\n if (msAbs >= m$1) {\n return plural$1(ms, msAbs, m$1, 'minute');\n }\n if (msAbs >= s$1) {\n return plural$1(ms, msAbs, s$1, 'second');\n }\n return ms + ' ms';\n }\n\n /**\n * Pluralization helper.\n */\n\n function plural$1(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n }\n\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var inited = false;\n function init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n }\n\n function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n }\n\n function tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n }\n\n function encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n }\n\n function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n }\n\n function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n }\n\n function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n }\n\n var toString$1 = {}.toString;\n\n var isArray = Array.isArray || function (arr) {\n return toString$1.call(arr) == '[object Array]';\n };\n\n var INSPECT_MAX_BYTES = 50;\n\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n Buffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined\n ? global$1.TYPED_ARRAY_SUPPORT\n : true;\n\n function kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n }\n\n function createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n }\n\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n\n // TODO: Legacy, not needed anymore. Remove in next major version.\n Buffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n };\n\n function from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n }\n\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n };\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n }\n\n function assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n }\n\n function alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n }\n\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n };\n\n function allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n }\n\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n };\n\n function fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n }\n\n function fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n }\n\n function fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n }\n\n function fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n }\n\n function checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n }\n Buffer.isBuffer = isBuffer;\n function internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n }\n\n Buffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n };\n\n Buffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n };\n\n Buffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n };\n\n function byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer.byteLength = byteLength;\n\n function slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n // Buffer instances.\n Buffer.prototype._isBuffer = true;\n\n function swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n };\n\n Buffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n };\n\n Buffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n };\n\n Buffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n };\n\n Buffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n };\n\n Buffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n };\n\n Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n };\n\n // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n }\n\n function arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n }\n\n Buffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n };\n\n Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n };\n\n function hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n }\n\n function utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n }\n\n function asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n }\n\n function latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n }\n\n function base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n }\n\n function ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n }\n\n Buffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n };\n\n function base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n }\n\n function utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n }\n\n // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n\n function decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n }\n\n function asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n }\n\n function latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n }\n\n function hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n }\n\n function utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n }\n\n Buffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n };\n\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n function checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n }\n\n Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n };\n\n Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n };\n\n Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n };\n\n Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n };\n\n Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n };\n\n Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n };\n\n Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n };\n\n Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n };\n\n Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n };\n\n Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n };\n\n Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n };\n\n Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n };\n\n function checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n }\n\n Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n };\n\n function objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n }\n\n Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n };\n\n Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n };\n\n function objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n }\n\n Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n };\n\n Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n };\n\n Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n };\n\n Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n };\n\n Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n };\n\n Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n };\n\n Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n };\n\n Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n };\n\n function checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n }\n\n function writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n };\n\n function writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n };\n\n // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n Buffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n };\n\n // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n Buffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n };\n\n // HELPER FUNCTIONS\n // ================\n\n var INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\n function base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n }\n\n function stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n }\n\n function toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n }\n\n function utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n }\n\n function asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n }\n\n function utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n }\n\n\n function base64ToBytes (str) {\n return toByteArray(base64clean(str))\n }\n\n function blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n }\n\n function isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n }\n\n\n // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n // The _isBuffer check is for Safari 5-7 support, because it's missing\n // Object.prototype.constructor. Remove this eventually\n function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n }\n\n function isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n }\n\n // For Node v0.10 support. Remove this eventually.\n function isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n }\n\n var browser$2 = true;\n\n var utils$3 = {};\n\n let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = '';\n let i = size;\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0];\n }\n return id\n }\n };\n let nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n };\n var nonSecure = { nanoid, customAlphabet };\n\n var he = {exports: {}};\n\n /*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n\n (function (module, exports) {\n (function(root) {\n\n \t// Detect free variables `exports`.\n \tvar freeExports = exports;\n\n \t// Detect free variable `module`.\n \tvar freeModule = module &&\n \t\tmodule.exports == freeExports && module;\n\n \t// Detect free variable `global`, from Node.js or Browserified code,\n \t// and use it as `root`.\n \tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal;\n \tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n \t\troot = freeGlobal;\n \t}\n\n \t/*--------------------------------------------------------------------------*/\n\n \t// All astral symbols.\n \tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n \t// All ASCII symbols (not just printable ASCII) except those listed in the\n \t// first column of the overrides table.\n \t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n \tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n \t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n \t// code points listed in the first column of the overrides table on\n \t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n \tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n \tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n \tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n \tvar regexEscape = /[\"&'<>`]/g;\n \tvar escapeMap = {\n \t\t'\"': '"',\n \t\t'&': '&',\n \t\t'\\'': ''',\n \t\t'<': '<',\n \t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n \t\t// following is not strictly necessary unless it’s part of a tag or an\n \t\t// unquoted attribute value. We’re only escaping it to support those\n \t\t// situations, and for XML support.\n \t\t'>': '>',\n \t\t// In Internet Explorer ≤ 8, the backtick character can be used\n \t\t// to break out of (un)quoted attribute values or HTML comments.\n \t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n \t\t// http://html5sec.org/#133.\n \t\t'`': '`'\n \t};\n\n \tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n \tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n \tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n \tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n \tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n \tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n \tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n \t/*--------------------------------------------------------------------------*/\n\n \tvar stringFromCharCode = String.fromCharCode;\n\n \tvar object = {};\n \tvar hasOwnProperty = object.hasOwnProperty;\n \tvar has = function(object, propertyName) {\n \t\treturn hasOwnProperty.call(object, propertyName);\n \t};\n\n \tvar contains = function(array, value) {\n \t\tvar index = -1;\n \t\tvar length = array.length;\n \t\twhile (++index < length) {\n \t\t\tif (array[index] == value) {\n \t\t\t\treturn true;\n \t\t\t}\n \t\t}\n \t\treturn false;\n \t};\n\n \tvar merge = function(options, defaults) {\n \t\tif (!options) {\n \t\t\treturn defaults;\n \t\t}\n \t\tvar result = {};\n \t\tvar key;\n \t\tfor (key in defaults) {\n \t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n \t\t\t// option names are used anyway. Any others are ignored.\n \t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n \t\t}\n \t\treturn result;\n \t};\n\n \t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n \tvar codePointToSymbol = function(codePoint, strict) {\n \t\tvar output = '';\n \t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n \t\t\t// See issue #4:\n \t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n \t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n \t\t\t// REPLACEMENT CHARACTER.”\n \t\t\tif (strict) {\n \t\t\t\tparseError('character reference outside the permissible Unicode range');\n \t\t\t}\n \t\t\treturn '\\uFFFD';\n \t\t}\n \t\tif (has(decodeMapNumeric, codePoint)) {\n \t\t\tif (strict) {\n \t\t\t\tparseError('disallowed character reference');\n \t\t\t}\n \t\t\treturn decodeMapNumeric[codePoint];\n \t\t}\n \t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n \t\t\tparseError('disallowed character reference');\n \t\t}\n \t\tif (codePoint > 0xFFFF) {\n \t\t\tcodePoint -= 0x10000;\n \t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n \t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n \t\t}\n \t\toutput += stringFromCharCode(codePoint);\n \t\treturn output;\n \t};\n\n \tvar hexEscape = function(codePoint) {\n \t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n \t};\n\n \tvar decEscape = function(codePoint) {\n \t\treturn '&#' + codePoint + ';';\n \t};\n\n \tvar parseError = function(message) {\n \t\tthrow Error('Parse error: ' + message);\n \t};\n\n \t/*--------------------------------------------------------------------------*/\n\n \tvar encode = function(string, options) {\n \t\toptions = merge(options, encode.options);\n \t\tvar strict = options.strict;\n \t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n \t\t\tparseError('forbidden code point');\n \t\t}\n \t\tvar encodeEverything = options.encodeEverything;\n \t\tvar useNamedReferences = options.useNamedReferences;\n \t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n \t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n \t\tvar escapeBmpSymbol = function(symbol) {\n \t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n \t\t};\n\n \t\tif (encodeEverything) {\n \t\t\t// Encode ASCII symbols.\n \t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n \t\t\t\t// Use named references if requested & possible.\n \t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n \t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n \t\t\t\t}\n \t\t\t\treturn escapeBmpSymbol(symbol);\n \t\t\t});\n \t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n \t\t\t// is within the ASCII range.\n \t\t\tif (useNamedReferences) {\n \t\t\t\tstring = string\n \t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n \t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n \t\t\t\t\t.replace(/fj/g, 'fj');\n \t\t\t}\n \t\t\t// Encode non-ASCII symbols.\n \t\t\tif (useNamedReferences) {\n \t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n \t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n \t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n \t\t\t\t\treturn '&' + encodeMap[string] + ';';\n \t\t\t\t});\n \t\t\t}\n \t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n \t\t} else if (useNamedReferences) {\n \t\t\t// Apply named character references.\n \t\t\t// Encode `<>\"'&` using named character references.\n \t\t\tif (!allowUnsafeSymbols) {\n \t\t\t\tstring = string.replace(regexEscape, function(string) {\n \t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n \t\t\t\t});\n \t\t\t}\n \t\t\t// Shorten escapes that represent two symbols, of which at least one is\n \t\t\t// `<>\"'&`.\n \t\t\tstring = string\n \t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n \t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n \t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n \t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n \t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n \t\t\t\treturn '&' + encodeMap[string] + ';';\n \t\t\t});\n \t\t} else if (!allowUnsafeSymbols) {\n \t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n \t\t\t// using named character references.\n \t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n \t\t}\n \t\treturn string\n \t\t\t// Encode astral symbols.\n \t\t\t.replace(regexAstralSymbols, function($0) {\n \t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n \t\t\t\tvar high = $0.charCodeAt(0);\n \t\t\t\tvar low = $0.charCodeAt(1);\n \t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n \t\t\t\treturn escapeCodePoint(codePoint);\n \t\t\t})\n \t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n \t\t\t// using a hexadecimal escape.\n \t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n \t};\n \t// Expose default options (so they can be overridden globally).\n \tencode.options = {\n \t\t'allowUnsafeSymbols': false,\n \t\t'encodeEverything': false,\n \t\t'strict': false,\n \t\t'useNamedReferences': false,\n \t\t'decimal' : false\n \t};\n\n \tvar decode = function(html, options) {\n \t\toptions = merge(options, decode.options);\n \t\tvar strict = options.strict;\n \t\tif (strict && regexInvalidEntity.test(html)) {\n \t\t\tparseError('malformed character reference');\n \t\t}\n \t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n \t\t\tvar codePoint;\n \t\t\tvar semicolon;\n \t\t\tvar decDigits;\n \t\t\tvar hexDigits;\n \t\t\tvar reference;\n \t\t\tvar next;\n\n \t\t\tif ($1) {\n \t\t\t\treference = $1;\n \t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n \t\t\t\treturn decodeMap[reference];\n \t\t\t}\n\n \t\t\tif ($2) {\n \t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n \t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n \t\t\t\t// followed by `=` in an attribute context.\n \t\t\t\treference = $2;\n \t\t\t\tnext = $3;\n \t\t\t\tif (next && options.isAttributeValue) {\n \t\t\t\t\tif (strict && next == '=') {\n \t\t\t\t\t\tparseError('`&` did not start a character reference');\n \t\t\t\t\t}\n \t\t\t\t\treturn $0;\n \t\t\t\t} else {\n \t\t\t\t\tif (strict) {\n \t\t\t\t\t\tparseError(\n \t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n \t\t\t\t\t\t);\n \t\t\t\t\t}\n \t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n \t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n \t\t\t\t}\n \t\t\t}\n\n \t\t\tif ($4) {\n \t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n \t\t\t\tdecDigits = $4;\n \t\t\t\tsemicolon = $5;\n \t\t\t\tif (strict && !semicolon) {\n \t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n \t\t\t\t}\n \t\t\t\tcodePoint = parseInt(decDigits, 10);\n \t\t\t\treturn codePointToSymbol(codePoint, strict);\n \t\t\t}\n\n \t\t\tif ($6) {\n \t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n \t\t\t\thexDigits = $6;\n \t\t\t\tsemicolon = $7;\n \t\t\t\tif (strict && !semicolon) {\n \t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n \t\t\t\t}\n \t\t\t\tcodePoint = parseInt(hexDigits, 16);\n \t\t\t\treturn codePointToSymbol(codePoint, strict);\n \t\t\t}\n\n \t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n \t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n \t\t\tif (strict) {\n \t\t\t\tparseError(\n \t\t\t\t\t'named character reference was not terminated by a semicolon'\n \t\t\t\t);\n \t\t\t}\n \t\t\treturn $0;\n \t\t});\n \t};\n \t// Expose default options (so they can be overridden globally).\n \tdecode.options = {\n \t\t'isAttributeValue': false,\n \t\t'strict': false\n \t};\n\n \tvar escape = function(string) {\n \t\treturn string.replace(regexEscape, function($0) {\n \t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n \t\t\treturn escapeMap[$0];\n \t\t});\n \t};\n\n \t/*--------------------------------------------------------------------------*/\n\n \tvar he = {\n \t\t'version': '1.2.0',\n \t\t'encode': encode,\n \t\t'decode': decode,\n \t\t'escape': escape,\n \t\t'unescape': decode\n \t};\n\n \t// Some AMD build optimizers, like r.js, check for specific condition patterns\n \t// like the following:\n \tif (freeExports && !freeExports.nodeType) {\n \t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n \t\t\tfreeModule.exports = he;\n \t\t} else { // in Narwhal or RingoJS v0.7.0-\n \t\t\tfor (var key in he) {\n \t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n \t\t\t}\n \t\t}\n \t} else { // in Rhino or a web browser\n \t\troot.he = he;\n \t}\n\n }(commonjsGlobal));\n }(he, he.exports));\n\n (function (exports) {\n\n /**\n * Various utility functions used throughout Mocha's codebase.\n * @module utils\n */\n\n /**\n * Module dependencies.\n */\n\n const {nanoid} = nonSecure;\n var path = require$$1;\n var util = require$$0$1;\n var he$1 = he.exports;\n\n const MOCHA_ID_PROP_NAME = '__mocha_id__';\n\n /**\n * Inherit the prototype methods from one constructor into another.\n *\n * @param {function} ctor - Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor - Constructor function to inherit prototype from.\n * @throws {TypeError} if either constructor is null, or if super constructor\n * lacks a prototype.\n */\n exports.inherits = util.inherits;\n\n /**\n * Escape special characters in the given string of html.\n *\n * @private\n * @param {string} html\n * @return {string}\n */\n exports.escape = function (html) {\n return he$1.encode(String(html), {useNamedReferences: false});\n };\n\n /**\n * Test if the given obj is type of string.\n *\n * @private\n * @param {Object} obj\n * @return {boolean}\n */\n exports.isString = function (obj) {\n return typeof obj === 'string';\n };\n\n /**\n * Compute a slug from the given `str`.\n *\n * @private\n * @param {string} str\n * @return {string}\n */\n exports.slug = function (str) {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^-\\w]/g, '')\n .replace(/-{2,}/g, '-');\n };\n\n /**\n * Strip the function definition from `str`, and re-indent for pre whitespace.\n *\n * @param {string} str\n * @return {string}\n */\n exports.clean = function (str) {\n str = str\n .replace(/\\r\\n?|[\\n\\u2028\\u2029]/g, '\\n')\n .replace(/^\\uFEFF/, '')\n // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content\n .replace(\n /^function(?:\\s*|\\s[^(]*)\\([^)]*\\)\\s*\\{((?:.|\\n)*?)\\}$|^\\([^)]*\\)\\s*=>\\s*(?:\\{((?:.|\\n)*?)\\}|((?:.|\\n)*))$/,\n '$1$2$3'\n );\n\n var spaces = str.match(/^\\n?( *)/)[1].length;\n var tabs = str.match(/^\\n?(\\t*)/)[1].length;\n var re = new RegExp(\n '^\\n?' + (tabs ? '\\t' : ' ') + '{' + (tabs || spaces) + '}',\n 'gm'\n );\n\n str = str.replace(re, '');\n\n return str.trim();\n };\n\n /**\n * If a value could have properties, and has none, this function is called,\n * which returns a string representation of the empty value.\n *\n * Functions w/ no properties return `'[Function]'`\n * Arrays w/ length === 0 return `'[]'`\n * Objects w/ no properties return `'{}'`\n * All else: return result of `value.toString()`\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} typeHint The type of the value\n * @returns {string}\n */\n function emptyRepresentation(value, typeHint) {\n switch (typeHint) {\n case 'function':\n return '[Function]';\n case 'object':\n return '{}';\n case 'array':\n return '[]';\n default:\n return value.toString();\n }\n }\n\n /**\n * Takes some variable and asks `Object.prototype.toString()` what it thinks it\n * is.\n *\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString\n * @param {*} value The value to test.\n * @returns {string} Computed type\n * @example\n * canonicalType({}) // 'object'\n * canonicalType([]) // 'array'\n * canonicalType(1) // 'number'\n * canonicalType(false) // 'boolean'\n * canonicalType(Infinity) // 'number'\n * canonicalType(null) // 'null'\n * canonicalType(new Date()) // 'date'\n * canonicalType(/foo/) // 'regexp'\n * canonicalType('type') // 'string'\n * canonicalType(global) // 'global'\n * canonicalType(new String('foo') // 'object'\n * canonicalType(async function() {}) // 'asyncfunction'\n * canonicalType(await import(name)) // 'module'\n */\n var canonicalType = (exports.canonicalType = function canonicalType(value) {\n if (value === undefined) {\n return 'undefined';\n } else if (value === null) {\n return 'null';\n } else if (isBuffer(value)) {\n return 'buffer';\n }\n return Object.prototype.toString\n .call(value)\n .replace(/^\\[.+\\s(.+?)]$/, '$1')\n .toLowerCase();\n });\n\n /**\n *\n * Returns a general type or data structure of a variable\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures\n * @param {*} value The value to test.\n * @returns {string} One of undefined, boolean, number, string, bigint, symbol, object\n * @example\n * type({}) // 'object'\n * type([]) // 'array'\n * type(1) // 'number'\n * type(false) // 'boolean'\n * type(Infinity) // 'number'\n * type(null) // 'null'\n * type(new Date()) // 'object'\n * type(/foo/) // 'object'\n * type('type') // 'string'\n * type(global) // 'object'\n * type(new String('foo') // 'string'\n */\n exports.type = function type(value) {\n // Null is special\n if (value === null) return 'null';\n const primitives = new Set([\n 'undefined',\n 'boolean',\n 'number',\n 'string',\n 'bigint',\n 'symbol'\n ]);\n const _type = typeof value;\n if (_type === 'function') return _type;\n if (primitives.has(_type)) return _type;\n if (value instanceof String) return 'string';\n if (value instanceof Error) return 'error';\n if (Array.isArray(value)) return 'array';\n\n return _type;\n };\n\n /**\n * Stringify `value`. Different behavior depending on type of value:\n *\n * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.\n * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.\n * - If `value` is an *empty* object, function, or array, return result of function\n * {@link emptyRepresentation}.\n * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of\n * JSON.stringify().\n *\n * @private\n * @see exports.type\n * @param {*} value\n * @return {string}\n */\n exports.stringify = function (value) {\n var typeHint = canonicalType(value);\n\n if (!~['object', 'array', 'function'].indexOf(typeHint)) {\n if (typeHint === 'buffer') {\n var json = Buffer.prototype.toJSON.call(value);\n // Based on the toJSON result\n return jsonStringify(\n json.data && json.type ? json.data : json,\n 2\n ).replace(/,(\\n|$)/g, '$1');\n }\n\n // IE7/IE8 has a bizarre String constructor; needs to be coerced\n // into an array and back to obj.\n if (typeHint === 'string' && typeof value === 'object') {\n value = value.split('').reduce(function (acc, char, idx) {\n acc[idx] = char;\n return acc;\n }, {});\n typeHint = 'object';\n } else {\n return jsonStringify(value);\n }\n }\n\n for (var prop in value) {\n if (Object.prototype.hasOwnProperty.call(value, prop)) {\n return jsonStringify(\n exports.canonicalize(value, null, typeHint),\n 2\n ).replace(/,(\\n|$)/g, '$1');\n }\n }\n\n return emptyRepresentation(value, typeHint);\n };\n\n /**\n * like JSON.stringify but more sense.\n *\n * @private\n * @param {Object} object\n * @param {number=} spaces\n * @param {number=} depth\n * @returns {*}\n */\n function jsonStringify(object, spaces, depth) {\n if (typeof spaces === 'undefined') {\n // primitive types\n return _stringify(object);\n }\n\n depth = depth || 1;\n var space = spaces * depth;\n var str = Array.isArray(object) ? '[' : '{';\n var end = Array.isArray(object) ? ']' : '}';\n var length =\n typeof object.length === 'number'\n ? object.length\n : Object.keys(object).length;\n // `.repeat()` polyfill\n function repeat(s, n) {\n return new Array(n).join(s);\n }\n\n function _stringify(val) {\n switch (canonicalType(val)) {\n case 'null':\n case 'undefined':\n val = '[' + val + ']';\n break;\n case 'array':\n case 'object':\n val = jsonStringify(val, spaces, depth + 1);\n break;\n case 'boolean':\n case 'regexp':\n case 'symbol':\n case 'number':\n val =\n val === 0 && 1 / val === -Infinity // `-0`\n ? '-0'\n : val.toString();\n break;\n case 'bigint':\n val = val.toString() + 'n';\n break;\n case 'date':\n var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString();\n val = '[Date: ' + sDate + ']';\n break;\n case 'buffer':\n var json = val.toJSON();\n // Based on the toJSON result\n json = json.data && json.type ? json.data : json;\n val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']';\n break;\n default:\n val =\n val === '[Function]' || val === '[Circular]'\n ? val\n : JSON.stringify(val); // string\n }\n return val;\n }\n\n for (var i in object) {\n if (!Object.prototype.hasOwnProperty.call(object, i)) {\n continue; // not my business\n }\n --length;\n str +=\n '\\n ' +\n repeat(' ', space) +\n (Array.isArray(object) ? '' : '\"' + i + '\": ') + // key\n _stringify(object[i]) + // value\n (length ? ',' : ''); // comma\n }\n\n return (\n str +\n // [], {}\n (str.length !== 1 ? '\\n' + repeat(' ', --space) + end : end)\n );\n }\n\n /**\n * Return a new Thing that has the keys in sorted order. Recursive.\n *\n * If the Thing...\n * - has already been seen, return string `'[Circular]'`\n * - is `undefined`, return string `'[undefined]'`\n * - is `null`, return value `null`\n * - is some other primitive, return the value\n * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method\n * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.\n * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()`\n *\n * @private\n * @see {@link exports.stringify}\n * @param {*} value Thing to inspect. May or may not have properties.\n * @param {Array} [stack=[]] Stack of seen values\n * @param {string} [typeHint] Type hint\n * @return {(Object|Array|Function|string|undefined)}\n */\n exports.canonicalize = function canonicalize(value, stack, typeHint) {\n var canonicalizedObj;\n /* eslint-disable no-unused-vars */\n var prop;\n /* eslint-enable no-unused-vars */\n typeHint = typeHint || canonicalType(value);\n function withStack(value, fn) {\n stack.push(value);\n fn();\n stack.pop();\n }\n\n stack = stack || [];\n\n if (stack.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n switch (typeHint) {\n case 'undefined':\n case 'buffer':\n case 'null':\n canonicalizedObj = value;\n break;\n case 'array':\n withStack(value, function () {\n canonicalizedObj = value.map(function (item) {\n return exports.canonicalize(item, stack);\n });\n });\n break;\n case 'function':\n /* eslint-disable-next-line no-unused-vars, no-unreachable-loop */\n for (prop in value) {\n canonicalizedObj = {};\n break;\n }\n /* eslint-enable guard-for-in */\n if (!canonicalizedObj) {\n canonicalizedObj = emptyRepresentation(value, typeHint);\n break;\n }\n /* falls through */\n case 'object':\n canonicalizedObj = canonicalizedObj || {};\n withStack(value, function () {\n Object.keys(value)\n .sort()\n .forEach(function (key) {\n canonicalizedObj[key] = exports.canonicalize(value[key], stack);\n });\n });\n break;\n case 'date':\n case 'number':\n case 'regexp':\n case 'boolean':\n case 'symbol':\n canonicalizedObj = value;\n break;\n default:\n canonicalizedObj = value + '';\n }\n\n return canonicalizedObj;\n };\n\n /**\n * @summary\n * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`)\n * @description\n * When invoking this function you get a filter function that get the Error.stack as an input,\n * and return a prettify output.\n * (i.e: strip Mocha and internal node functions from stack trace).\n * @returns {Function}\n */\n exports.stackTraceFilter = function () {\n // TODO: Replace with `process.browser`\n var is = typeof document === 'undefined' ? {node: true} : {browser: true};\n var slash = path.sep;\n var cwd;\n if (is.node) {\n cwd = exports.cwd() + slash;\n } else {\n cwd = (\n typeof location === 'undefined' ? window.location : location\n ).href.replace(/\\/[^/]*$/, '/');\n slash = '/';\n }\n\n function isMochaInternal(line) {\n return (\n ~line.indexOf('node_modules' + slash + 'mocha' + slash) ||\n ~line.indexOf(slash + 'mocha.js') ||\n ~line.indexOf(slash + 'mocha.min.js')\n );\n }\n\n function isNodeInternal(line) {\n return (\n ~line.indexOf('(timers.js:') ||\n ~line.indexOf('(events.js:') ||\n ~line.indexOf('(node.js:') ||\n ~line.indexOf('(module.js:') ||\n ~line.indexOf('GeneratorFunctionPrototype.next (native)') ||\n false\n );\n }\n\n return function (stack) {\n stack = stack.split('\\n');\n\n stack = stack.reduce(function (list, line) {\n if (isMochaInternal(line)) {\n return list;\n }\n\n if (is.node && isNodeInternal(line)) {\n return list;\n }\n\n // Clean up cwd(absolute)\n if (/:\\d+:\\d+\\)?$/.test(line)) {\n line = line.replace('(' + cwd, '(');\n }\n\n list.push(line);\n return list;\n }, []);\n\n return stack.join('\\n');\n };\n };\n\n /**\n * Crude, but effective.\n * @public\n * @param {*} value\n * @returns {boolean} Whether or not `value` is a Promise\n */\n exports.isPromise = function isPromise(value) {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof value.then === 'function'\n );\n };\n\n /**\n * Clamps a numeric value to an inclusive range.\n *\n * @param {number} value - Value to be clamped.\n * @param {number[]} range - Two element array specifying [min, max] range.\n * @returns {number} clamped value\n */\n exports.clamp = function clamp(value, range) {\n return Math.min(Math.max(value, range[0]), range[1]);\n };\n\n /**\n * It's a noop.\n * @public\n */\n exports.noop = function () {};\n\n /**\n * Creates a map-like object.\n *\n * @description\n * A \"map\" is an object with no prototype, for our purposes. In some cases\n * this would be more appropriate than a `Map`, especially if your environment\n * doesn't support it. Recommended for use in Mocha's public APIs.\n *\n * @public\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Custom_and_Null_objects|MDN:Map}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Custom_and_Null_objects|MDN:Object.create - Custom objects}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Custom_and_Null_objects|MDN:Object.assign}\n * @param {...*} [obj] - Arguments to `Object.assign()`.\n * @returns {Object} An object with no prototype, having `...obj` properties\n */\n exports.createMap = function (obj) {\n return Object.assign.apply(\n null,\n [Object.create(null)].concat(Array.prototype.slice.call(arguments))\n );\n };\n\n /**\n * Creates a read-only map-like object.\n *\n * @description\n * This differs from {@link module:utils.createMap createMap} only in that\n * the argument must be non-empty, because the result is frozen.\n *\n * @see {@link module:utils.createMap createMap}\n * @param {...*} [obj] - Arguments to `Object.assign()`.\n * @returns {Object} A frozen object with no prototype, having `...obj` properties\n * @throws {TypeError} if argument is not a non-empty object.\n */\n exports.defineConstants = function (obj) {\n if (canonicalType(obj) !== 'object' || !Object.keys(obj).length) {\n throw new TypeError('Invalid argument; expected a non-empty object');\n }\n return Object.freeze(exports.createMap(obj));\n };\n\n /**\n * Returns current working directory\n *\n * Wrapper around `process.cwd()` for isolation\n * @private\n */\n exports.cwd = function cwd() {\n return process.cwd();\n };\n\n /**\n * Returns `true` if Mocha is running in a browser.\n * Checks for `process.browser`.\n * @returns {boolean}\n * @private\n */\n exports.isBrowser = function isBrowser() {\n return Boolean(browser$2);\n };\n\n /*\n * Casts `value` to an array; useful for optionally accepting array parameters\n *\n * It follows these rules, depending on `value`. If `value` is...\n * 1. `undefined`: return an empty Array\n * 2. `null`: return an array with a single `null` element\n * 3. Any other object: return the value of `Array.from()` _if_ the object is iterable\n * 4. otherwise: return an array with a single element, `value`\n * @param {*} value - Something to cast to an Array\n * @returns {Array<*>}\n */\n exports.castArray = function castArray(value) {\n if (value === undefined) {\n return [];\n }\n if (value === null) {\n return [null];\n }\n if (\n typeof value === 'object' &&\n (typeof value[Symbol.iterator] === 'function' || value.length !== undefined)\n ) {\n return Array.from(value);\n }\n return [value];\n };\n\n exports.constants = exports.defineConstants({\n MOCHA_ID_PROP_NAME\n });\n\n /**\n * Creates a new unique identifier\n * @returns {string} Unique identifier\n */\n exports.uniqueID = () => nanoid();\n\n exports.assignNewMochaID = obj => {\n const id = exports.uniqueID();\n Object.defineProperty(obj, MOCHA_ID_PROP_NAME, {\n get() {\n return id;\n }\n });\n return obj;\n };\n\n /**\n * Retrieves a Mocha ID from an object, if present.\n * @param {*} [obj] - Object\n * @returns {string|void}\n */\n exports.getMochaID = obj =>\n obj && typeof obj === 'object' ? obj[MOCHA_ID_PROP_NAME] : undefined;\n }(utils$3));\n\n var _nodeResolve_empty = {};\n\n var _nodeResolve_empty$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': _nodeResolve_empty\n });\n\n var require$$18 = /*@__PURE__*/getAugmentedNamespace(_nodeResolve_empty$1);\n\n var browser$1 = {\n \tinfo: 'ℹ️',\n \tsuccess: '✅',\n \twarning: '⚠️',\n \terror: '❌️'\n };\n\n var require$$0 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_events);\n\n /**\n @module Pending\n */\n\n var pending = Pending$2;\n\n /**\n * Initialize a new `Pending` error with the given message.\n *\n * @param {string} message\n */\n function Pending$2(message) {\n this.message = message;\n }\n\n var browser = {exports: {}};\n\n /**\n * Helpers.\n */\n\n var s = 1000;\n var m = s * 60;\n var h = m * 60;\n var d = h * 24;\n var w = d * 7;\n var y = d * 365.25;\n\n /**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\n var ms = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n };\n\n /**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n function parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n }\n\n /**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n function fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n }\n\n /**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n function fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n }\n\n /**\n * Pluralization helper.\n */\n\n function plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n }\n\n /**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\n function setup(env) {\n \tcreateDebug.debug = createDebug;\n \tcreateDebug.default = createDebug;\n \tcreateDebug.coerce = coerce;\n \tcreateDebug.disable = disable;\n \tcreateDebug.enable = enable;\n \tcreateDebug.enabled = enabled;\n \tcreateDebug.humanize = ms;\n \tcreateDebug.destroy = destroy;\n\n \tObject.keys(env).forEach(key => {\n \t\tcreateDebug[key] = env[key];\n \t});\n\n \t/**\n \t* The currently active debug mode names, and names to skip.\n \t*/\n\n \tcreateDebug.names = [];\n \tcreateDebug.skips = [];\n\n \t/**\n \t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n \t*\n \t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n \t*/\n \tcreateDebug.formatters = {};\n\n \t/**\n \t* Selects a color for a debug namespace\n \t* @param {String} namespace The namespace string for the debug instance to be colored\n \t* @return {Number|String} An ANSI color code for the given namespace\n \t* @api private\n \t*/\n \tfunction selectColor(namespace) {\n \t\tlet hash = 0;\n\n \t\tfor (let i = 0; i < namespace.length; i++) {\n \t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n \t\t\thash |= 0; // Convert to 32bit integer\n \t\t}\n\n \t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n \t}\n \tcreateDebug.selectColor = selectColor;\n\n \t/**\n \t* Create a debugger with the given `namespace`.\n \t*\n \t* @param {String} namespace\n \t* @return {Function}\n \t* @api public\n \t*/\n \tfunction createDebug(namespace) {\n \t\tlet prevTime;\n \t\tlet enableOverride = null;\n \t\tlet namespacesCache;\n \t\tlet enabledCache;\n\n \t\tfunction debug(...args) {\n \t\t\t// Disabled?\n \t\t\tif (!debug.enabled) {\n \t\t\t\treturn;\n \t\t\t}\n\n \t\t\tconst self = debug;\n\n \t\t\t// Set `diff` timestamp\n \t\t\tconst curr = Number(new Date());\n \t\t\tconst ms = curr - (prevTime || curr);\n \t\t\tself.diff = ms;\n \t\t\tself.prev = prevTime;\n \t\t\tself.curr = curr;\n \t\t\tprevTime = curr;\n\n \t\t\targs[0] = createDebug.coerce(args[0]);\n\n \t\t\tif (typeof args[0] !== 'string') {\n \t\t\t\t// Anything else let's inspect with %O\n \t\t\t\targs.unshift('%O');\n \t\t\t}\n\n \t\t\t// Apply any `formatters` transformations\n \t\t\tlet index = 0;\n \t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n \t\t\t\t// If we encounter an escaped % then don't increase the array index\n \t\t\t\tif (match === '%%') {\n \t\t\t\t\treturn '%';\n \t\t\t\t}\n \t\t\t\tindex++;\n \t\t\t\tconst formatter = createDebug.formatters[format];\n \t\t\t\tif (typeof formatter === 'function') {\n \t\t\t\t\tconst val = args[index];\n \t\t\t\t\tmatch = formatter.call(self, val);\n\n \t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n \t\t\t\t\targs.splice(index, 1);\n \t\t\t\t\tindex--;\n \t\t\t\t}\n \t\t\t\treturn match;\n \t\t\t});\n\n \t\t\t// Apply env-specific formatting (colors, etc.)\n \t\t\tcreateDebug.formatArgs.call(self, args);\n\n \t\t\tconst logFn = self.log || createDebug.log;\n \t\t\tlogFn.apply(self, args);\n \t\t}\n\n \t\tdebug.namespace = namespace;\n \t\tdebug.useColors = createDebug.useColors();\n \t\tdebug.color = createDebug.selectColor(namespace);\n \t\tdebug.extend = extend;\n \t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n \t\tObject.defineProperty(debug, 'enabled', {\n \t\t\tenumerable: true,\n \t\t\tconfigurable: false,\n \t\t\tget: () => {\n \t\t\t\tif (enableOverride !== null) {\n \t\t\t\t\treturn enableOverride;\n \t\t\t\t}\n \t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n \t\t\t\t\tnamespacesCache = createDebug.namespaces;\n \t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n \t\t\t\t}\n\n \t\t\t\treturn enabledCache;\n \t\t\t},\n \t\t\tset: v => {\n \t\t\t\tenableOverride = v;\n \t\t\t}\n \t\t});\n\n \t\t// Env-specific initialization logic for debug instances\n \t\tif (typeof createDebug.init === 'function') {\n \t\t\tcreateDebug.init(debug);\n \t\t}\n\n \t\treturn debug;\n \t}\n\n \tfunction extend(namespace, delimiter) {\n \t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n \t\tnewDebug.log = this.log;\n \t\treturn newDebug;\n \t}\n\n \t/**\n \t* Enables a debug mode by namespaces. This can include modes\n \t* separated by a colon and wildcards.\n \t*\n \t* @param {String} namespaces\n \t* @api public\n \t*/\n \tfunction enable(namespaces) {\n \t\tcreateDebug.save(namespaces);\n \t\tcreateDebug.namespaces = namespaces;\n\n \t\tcreateDebug.names = [];\n \t\tcreateDebug.skips = [];\n\n \t\tlet i;\n \t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n \t\tconst len = split.length;\n\n \t\tfor (i = 0; i < len; i++) {\n \t\t\tif (!split[i]) {\n \t\t\t\t// ignore empty strings\n \t\t\t\tcontinue;\n \t\t\t}\n\n \t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n \t\t\tif (namespaces[0] === '-') {\n \t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n \t\t\t} else {\n \t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n \t\t\t}\n \t\t}\n \t}\n\n \t/**\n \t* Disable debug output.\n \t*\n \t* @return {String} namespaces\n \t* @api public\n \t*/\n \tfunction disable() {\n \t\tconst namespaces = [\n \t\t\t...createDebug.names.map(toNamespace),\n \t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n \t\t].join(',');\n \t\tcreateDebug.enable('');\n \t\treturn namespaces;\n \t}\n\n \t/**\n \t* Returns true if the given mode name is enabled, false otherwise.\n \t*\n \t* @param {String} name\n \t* @return {Boolean}\n \t* @api public\n \t*/\n \tfunction enabled(name) {\n \t\tif (name[name.length - 1] === '*') {\n \t\t\treturn true;\n \t\t}\n\n \t\tlet i;\n \t\tlet len;\n\n \t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n \t\t\tif (createDebug.skips[i].test(name)) {\n \t\t\t\treturn false;\n \t\t\t}\n \t\t}\n\n \t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n \t\t\tif (createDebug.names[i].test(name)) {\n \t\t\t\treturn true;\n \t\t\t}\n \t\t}\n\n \t\treturn false;\n \t}\n\n \t/**\n \t* Convert regexp to namespace\n \t*\n \t* @param {RegExp} regxep\n \t* @return {String} namespace\n \t* @api private\n \t*/\n \tfunction toNamespace(regexp) {\n \t\treturn regexp.toString()\n \t\t\t.substring(2, regexp.toString().length - 2)\n \t\t\t.replace(/\\.\\*\\?$/, '*');\n \t}\n\n \t/**\n \t* Coerce `val`.\n \t*\n \t* @param {Mixed} val\n \t* @return {Mixed}\n \t* @api private\n \t*/\n \tfunction coerce(val) {\n \t\tif (val instanceof Error) {\n \t\t\treturn val.stack || val.message;\n \t\t}\n \t\treturn val;\n \t}\n\n \t/**\n \t* XXX DO NOT USE. This is a temporary stub function.\n \t* XXX It WILL be removed in the next major release.\n \t*/\n \tfunction destroy() {\n \t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n \t}\n\n \tcreateDebug.enable(createDebug.load());\n\n \treturn createDebug;\n }\n\n var common$1 = setup;\n\n (function (module, exports) {\n /**\n * This is the web browser implementation of `debug()`.\n */\n\n exports.formatArgs = formatArgs;\n exports.save = save;\n exports.load = load;\n exports.useColors = useColors;\n exports.storage = localstorage();\n exports.destroy = (() => {\n \tlet warned = false;\n\n \treturn () => {\n \t\tif (!warned) {\n \t\t\twarned = true;\n \t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n \t\t}\n \t};\n })();\n\n /**\n * Colors.\n */\n\n exports.colors = [\n \t'#0000CC',\n \t'#0000FF',\n \t'#0033CC',\n \t'#0033FF',\n \t'#0066CC',\n \t'#0066FF',\n \t'#0099CC',\n \t'#0099FF',\n \t'#00CC00',\n \t'#00CC33',\n \t'#00CC66',\n \t'#00CC99',\n \t'#00CCCC',\n \t'#00CCFF',\n \t'#3300CC',\n \t'#3300FF',\n \t'#3333CC',\n \t'#3333FF',\n \t'#3366CC',\n \t'#3366FF',\n \t'#3399CC',\n \t'#3399FF',\n \t'#33CC00',\n \t'#33CC33',\n \t'#33CC66',\n \t'#33CC99',\n \t'#33CCCC',\n \t'#33CCFF',\n \t'#6600CC',\n \t'#6600FF',\n \t'#6633CC',\n \t'#6633FF',\n \t'#66CC00',\n \t'#66CC33',\n \t'#9900CC',\n \t'#9900FF',\n \t'#9933CC',\n \t'#9933FF',\n \t'#99CC00',\n \t'#99CC33',\n \t'#CC0000',\n \t'#CC0033',\n \t'#CC0066',\n \t'#CC0099',\n \t'#CC00CC',\n \t'#CC00FF',\n \t'#CC3300',\n \t'#CC3333',\n \t'#CC3366',\n \t'#CC3399',\n \t'#CC33CC',\n \t'#CC33FF',\n \t'#CC6600',\n \t'#CC6633',\n \t'#CC9900',\n \t'#CC9933',\n \t'#CCCC00',\n \t'#CCCC33',\n \t'#FF0000',\n \t'#FF0033',\n \t'#FF0066',\n \t'#FF0099',\n \t'#FF00CC',\n \t'#FF00FF',\n \t'#FF3300',\n \t'#FF3333',\n \t'#FF3366',\n \t'#FF3399',\n \t'#FF33CC',\n \t'#FF33FF',\n \t'#FF6600',\n \t'#FF6633',\n \t'#FF9900',\n \t'#FF9933',\n \t'#FFCC00',\n \t'#FFCC33'\n ];\n\n /**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n // eslint-disable-next-line complexity\n function useColors() {\n \t// NB: In an Electron preload script, document will be defined but not fully\n \t// initialized. Since we know we're in Chrome, we'll just detect this case\n \t// explicitly\n \tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n \t\treturn true;\n \t}\n\n \t// Internet Explorer and Edge do not support colors.\n \tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n \t\treturn false;\n \t}\n\n \t// Is webkit? http://stackoverflow.com/a/16459606/376773\n \t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n \treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n \t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n \t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n \t\t// Is firefox >= v31?\n \t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n \t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n \t\t// Double check webkit in userAgent just in case we are in a worker\n \t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n }\n\n /**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n function formatArgs(args) {\n \targs[0] = (this.useColors ? '%c' : '') +\n \t\tthis.namespace +\n \t\t(this.useColors ? ' %c' : ' ') +\n \t\targs[0] +\n \t\t(this.useColors ? '%c ' : ' ') +\n \t\t'+' + module.exports.humanize(this.diff);\n\n \tif (!this.useColors) {\n \t\treturn;\n \t}\n\n \tconst c = 'color: ' + this.color;\n \targs.splice(1, 0, c, 'color: inherit');\n\n \t// The final \"%c\" is somewhat tricky, because there could be other\n \t// arguments passed either before or after the %c, so we need to\n \t// figure out the correct index to insert the CSS into\n \tlet index = 0;\n \tlet lastC = 0;\n \targs[0].replace(/%[a-zA-Z%]/g, match => {\n \t\tif (match === '%%') {\n \t\t\treturn;\n \t\t}\n \t\tindex++;\n \t\tif (match === '%c') {\n \t\t\t// We only are interested in the *last* %c\n \t\t\t// (the user may have provided their own)\n \t\t\tlastC = index;\n \t\t}\n \t});\n\n \targs.splice(lastC, 0, c);\n }\n\n /**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\n exports.log = console.debug || console.log || (() => {});\n\n /**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n function save(namespaces) {\n \ttry {\n \t\tif (namespaces) {\n \t\t\texports.storage.setItem('debug', namespaces);\n \t\t} else {\n \t\t\texports.storage.removeItem('debug');\n \t\t}\n \t} catch (error) {\n \t\t// Swallow\n \t\t// XXX (@Qix-) should we be logging these?\n \t}\n }\n\n /**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n function load() {\n \tlet r;\n \ttry {\n \t\tr = exports.storage.getItem('debug');\n \t} catch (error) {\n \t\t// Swallow\n \t\t// XXX (@Qix-) should we be logging these?\n \t}\n\n \t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n \tif (!r && typeof process !== 'undefined' && 'env' in process) {\n \t\tr = process.env.DEBUG;\n \t}\n\n \treturn r;\n }\n\n /**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\n function localstorage() {\n \ttry {\n \t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n \t\t// The Browser also has localStorage in the global context.\n \t\treturn localStorage;\n \t} catch (error) {\n \t\t// Swallow\n \t\t// XXX (@Qix-) should we be logging these?\n \t}\n }\n\n module.exports = common$1(exports);\n\n const {formatters} = module.exports;\n\n /**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\n formatters.j = function (v) {\n \ttry {\n \t\treturn JSON.stringify(v);\n \t} catch (error) {\n \t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n \t}\n };\n }(browser, browser.exports));\n\n const {format} = require$$0$1;\n\n /**\n * Contains error codes, factory functions to create throwable error objects,\n * and warning/deprecation functions.\n * @module\n */\n\n /**\n * process.emitWarning or a polyfill\n * @see https://nodejs.org/api/process.html#process_process_emitwarning_warning_options\n * @ignore\n */\n const emitWarning = (msg, type) => {\n if (process.emitWarning) {\n process.emitWarning(msg, type);\n } else {\n /* istanbul ignore next */\n nextTick$1(function () {\n console.warn(type + ': ' + msg);\n });\n }\n };\n\n /**\n * Show a deprecation warning. Each distinct message is only displayed once.\n * Ignores empty messages.\n *\n * @param {string} [msg] - Warning to print\n * @private\n */\n const deprecate = msg => {\n msg = String(msg);\n if (msg && !deprecate.cache[msg]) {\n deprecate.cache[msg] = true;\n emitWarning(msg, 'DeprecationWarning');\n }\n };\n deprecate.cache = {};\n\n /**\n * Show a generic warning.\n * Ignores empty messages.\n *\n * @param {string} [msg] - Warning to print\n * @private\n */\n const warn = msg => {\n if (msg) {\n emitWarning(msg);\n }\n };\n\n /**\n * When Mocha throws exceptions (or rejects `Promise`s), it attempts to assign a `code` property to the `Error` object, for easier handling. These are the potential values of `code`.\n * @public\n * @namespace\n * @memberof module:lib/errors\n */\n var constants$4 = {\n /**\n * An unrecoverable error.\n * @constant\n * @default\n */\n FATAL: 'ERR_MOCHA_FATAL',\n\n /**\n * The type of an argument to a function call is invalid\n * @constant\n * @default\n */\n INVALID_ARG_TYPE: 'ERR_MOCHA_INVALID_ARG_TYPE',\n\n /**\n * The value of an argument to a function call is invalid\n * @constant\n * @default\n */\n INVALID_ARG_VALUE: 'ERR_MOCHA_INVALID_ARG_VALUE',\n\n /**\n * Something was thrown, but it wasn't an `Error`\n * @constant\n * @default\n */\n INVALID_EXCEPTION: 'ERR_MOCHA_INVALID_EXCEPTION',\n\n /**\n * An interface (e.g., `Mocha.interfaces`) is unknown or invalid\n * @constant\n * @default\n */\n INVALID_INTERFACE: 'ERR_MOCHA_INVALID_INTERFACE',\n\n /**\n * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid\n * @constant\n * @default\n */\n INVALID_REPORTER: 'ERR_MOCHA_INVALID_REPORTER',\n\n /**\n * `done()` was called twice in a `Test` or `Hook` callback\n * @constant\n * @default\n */\n MULTIPLE_DONE: 'ERR_MOCHA_MULTIPLE_DONE',\n\n /**\n * No files matched the pattern provided by the user\n * @constant\n * @default\n */\n NO_FILES_MATCH_PATTERN: 'ERR_MOCHA_NO_FILES_MATCH_PATTERN',\n\n /**\n * Known, but unsupported behavior of some kind\n * @constant\n * @default\n */\n UNSUPPORTED: 'ERR_MOCHA_UNSUPPORTED',\n\n /**\n * Invalid state transition occurring in `Mocha` instance\n * @constant\n * @default\n */\n INSTANCE_ALREADY_RUNNING: 'ERR_MOCHA_INSTANCE_ALREADY_RUNNING',\n\n /**\n * Invalid state transition occurring in `Mocha` instance\n * @constant\n * @default\n */\n INSTANCE_ALREADY_DISPOSED: 'ERR_MOCHA_INSTANCE_ALREADY_DISPOSED',\n\n /**\n * Use of `only()` w/ `--forbid-only` results in this error.\n * @constant\n * @default\n */\n FORBIDDEN_EXCLUSIVITY: 'ERR_MOCHA_FORBIDDEN_EXCLUSIVITY',\n\n /**\n * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid\n * @constant\n * @default\n */\n INVALID_PLUGIN_IMPLEMENTATION: 'ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION',\n\n /**\n * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid\n * @constant\n * @default\n */\n INVALID_PLUGIN_DEFINITION: 'ERR_MOCHA_INVALID_PLUGIN_DEFINITION',\n\n /**\n * When a runnable exceeds its allowed run time.\n * @constant\n * @default\n */\n TIMEOUT: 'ERR_MOCHA_TIMEOUT',\n\n /**\n * Input file is not able to be parsed\n * @constant\n * @default\n */\n UNPARSABLE_FILE: 'ERR_MOCHA_UNPARSABLE_FILE'\n };\n\n /**\n * A set containing all string values of all Mocha error constants, for use by {@link isMochaError}.\n * @private\n */\n const MOCHA_ERRORS = new Set(Object.values(constants$4));\n\n /**\n * Creates an error object to be thrown when no files to be tested could be found using specified pattern.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} pattern - User-specified argument value.\n * @returns {Error} instance detailing the error condition\n */\n function createNoFilesMatchPatternError(message, pattern) {\n var err = new Error(message);\n err.code = constants$4.NO_FILES_MATCH_PATTERN;\n err.pattern = pattern;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when the reporter specified in the options was not found.\n *\n * @public\n * @param {string} message - Error message to be displayed.\n * @param {string} reporter - User-specified reporter value.\n * @returns {Error} instance detailing the error condition\n */\n function createInvalidReporterError(message, reporter) {\n var err = new TypeError(message);\n err.code = constants$4.INVALID_REPORTER;\n err.reporter = reporter;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when the interface specified in the options was not found.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} ui - User-specified interface value.\n * @returns {Error} instance detailing the error condition\n */\n function createInvalidInterfaceError(message, ui) {\n var err = new Error(message);\n err.code = constants$4.INVALID_INTERFACE;\n err.interface = ui;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when a behavior, option, or parameter is unsupported.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\n function createUnsupportedError$2(message) {\n var err = new Error(message);\n err.code = constants$4.UNSUPPORTED;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when an argument is missing.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} expected - Expected argument datatype.\n * @returns {Error} instance detailing the error condition\n */\n function createMissingArgumentError$1(message, argument, expected) {\n return createInvalidArgumentTypeError$1(message, argument, expected);\n }\n\n /**\n * Creates an error object to be thrown when an argument did not use the supported type\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} expected - Expected argument datatype.\n * @returns {Error} instance detailing the error condition\n */\n function createInvalidArgumentTypeError$1(message, argument, expected) {\n var err = new TypeError(message);\n err.code = constants$4.INVALID_ARG_TYPE;\n err.argument = argument;\n err.expected = expected;\n err.actual = typeof argument;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when an argument did not use the supported value\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} value - Argument value.\n * @param {string} [reason] - Why value is invalid.\n * @returns {Error} instance detailing the error condition\n */\n function createInvalidArgumentValueError(message, argument, value, reason) {\n var err = new TypeError(message);\n err.code = constants$4.INVALID_ARG_VALUE;\n err.argument = argument;\n err.value = value;\n err.reason = typeof reason !== 'undefined' ? reason : 'is invalid';\n return err;\n }\n\n /**\n * Creates an error object to be thrown when an exception was caught, but the `Error` is falsy or undefined.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\n function createInvalidExceptionError$2(message, value) {\n var err = new Error(message);\n err.code = constants$4.INVALID_EXCEPTION;\n err.valueType = typeof value;\n err.value = value;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when an unrecoverable error occurs.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\n function createFatalError$1(message, value) {\n var err = new Error(message);\n err.code = constants$4.FATAL;\n err.valueType = typeof value;\n err.value = value;\n return err;\n }\n\n /**\n * Dynamically creates a plugin-type-specific error based on plugin type\n * @param {string} message - Error message\n * @param {\"reporter\"|\"ui\"} pluginType - Plugin type. Future: expand as needed\n * @param {string} [pluginId] - Name/path of plugin, if any\n * @throws When `pluginType` is not known\n * @public\n * @static\n * @returns {Error}\n */\n function createInvalidLegacyPluginError(message, pluginType, pluginId) {\n switch (pluginType) {\n case 'reporter':\n return createInvalidReporterError(message, pluginId);\n case 'ui':\n return createInvalidInterfaceError(message, pluginId);\n default:\n throw new Error('unknown pluginType \"' + pluginType + '\"');\n }\n }\n\n /**\n * **DEPRECATED**. Use {@link createInvalidLegacyPluginError} instead Dynamically creates a plugin-type-specific error based on plugin type\n * @deprecated\n * @param {string} message - Error message\n * @param {\"reporter\"|\"interface\"} pluginType - Plugin type. Future: expand as needed\n * @param {string} [pluginId] - Name/path of plugin, if any\n * @throws When `pluginType` is not known\n * @public\n * @static\n * @returns {Error}\n */\n function createInvalidPluginError(...args) {\n deprecate('Use createInvalidLegacyPluginError() instead');\n return createInvalidLegacyPluginError(...args);\n }\n\n /**\n * Creates an error object to be thrown when a mocha object's `run` method is executed while it is already disposed.\n * @param {string} message The error message to be displayed.\n * @param {boolean} cleanReferencesAfterRun the value of `cleanReferencesAfterRun`\n * @param {Mocha} instance the mocha instance that throw this error\n * @static\n */\n function createMochaInstanceAlreadyDisposedError(\n message,\n cleanReferencesAfterRun,\n instance\n ) {\n var err = new Error(message);\n err.code = constants$4.INSTANCE_ALREADY_DISPOSED;\n err.cleanReferencesAfterRun = cleanReferencesAfterRun;\n err.instance = instance;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when a mocha object's `run` method is called while a test run is in progress.\n * @param {string} message The error message to be displayed.\n * @static\n * @public\n */\n function createMochaInstanceAlreadyRunningError(message, instance) {\n var err = new Error(message);\n err.code = constants$4.INSTANCE_ALREADY_RUNNING;\n err.instance = instance;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when done() is called multiple times in a test\n *\n * @public\n * @param {Runnable} runnable - Original runnable\n * @param {Error} [originalErr] - Original error, if any\n * @returns {Error} instance detailing the error condition\n * @static\n */\n function createMultipleDoneError$1(runnable, originalErr) {\n var title;\n try {\n title = format('<%s>', runnable.fullTitle());\n if (runnable.parent.root) {\n title += ' (of root suite)';\n }\n } catch (ignored) {\n title = format('<%s> (of unknown suite)', runnable.title);\n }\n var message = format(\n 'done() called multiple times in %s %s',\n runnable.type ? runnable.type : 'unknown runnable',\n title\n );\n if (runnable.file) {\n message += format(' of file %s', runnable.file);\n }\n if (originalErr) {\n message += format('; in addition, done() received error: %s', originalErr);\n }\n\n var err = new Error(message);\n err.code = constants$4.MULTIPLE_DONE;\n err.valueType = typeof originalErr;\n err.value = originalErr;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when `.only()` is used with\n * `--forbid-only`.\n * @static\n * @public\n * @param {Mocha} mocha - Mocha instance\n * @returns {Error} Error with code {@link constants.FORBIDDEN_EXCLUSIVITY}\n */\n function createForbiddenExclusivityError$1(mocha) {\n var err = new Error(\n mocha.isWorker\n ? '`.only` is not supported in parallel mode'\n : '`.only` forbidden by --forbid-only'\n );\n err.code = constants$4.FORBIDDEN_EXCLUSIVITY;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when a plugin definition is invalid\n * @static\n * @param {string} msg - Error message\n * @param {PluginDefinition} [pluginDef] - Problematic plugin definition\n * @public\n * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}\n */\n function createInvalidPluginDefinitionError(msg, pluginDef) {\n const err = new Error(msg);\n err.code = constants$4.INVALID_PLUGIN_DEFINITION;\n err.pluginDef = pluginDef;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when a plugin implementation (user code) is invalid\n * @static\n * @param {string} msg - Error message\n * @param {Object} [opts] - Plugin definition and user-supplied implementation\n * @param {PluginDefinition} [opts.pluginDef] - Plugin Definition\n * @param {*} [opts.pluginImpl] - Plugin Implementation (user-supplied)\n * @public\n * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}\n */\n function createInvalidPluginImplementationError(\n msg,\n {pluginDef, pluginImpl} = {}\n ) {\n const err = new Error(msg);\n err.code = constants$4.INVALID_PLUGIN_IMPLEMENTATION;\n err.pluginDef = pluginDef;\n err.pluginImpl = pluginImpl;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when a runnable exceeds its allowed run time.\n * @static\n * @param {string} msg - Error message\n * @param {number} [timeout] - Timeout in ms\n * @param {string} [file] - File, if given\n * @returns {MochaTimeoutError}\n */\n function createTimeoutError$1(msg, timeout, file) {\n const err = new Error(msg);\n err.code = constants$4.TIMEOUT;\n err.timeout = timeout;\n err.file = file;\n return err;\n }\n\n /**\n * Creates an error object to be thrown when file is unparsable\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} filename - File name\n * @returns {Error} Error with code {@link constants.UNPARSABLE_FILE}\n */\n function createUnparsableFileError(message, filename) {\n var err = new Error(message);\n err.code = constants$4.UNPARSABLE_FILE;\n return err;\n }\n\n /**\n * Returns `true` if an error came out of Mocha.\n * _Can suffer from false negatives, but not false positives._\n * @static\n * @public\n * @param {*} err - Error, or anything\n * @returns {boolean}\n */\n const isMochaError$1 = err =>\n Boolean(err && typeof err === 'object' && MOCHA_ERRORS.has(err.code));\n\n var errors$2 = {\n constants: constants$4,\n createFatalError: createFatalError$1,\n createForbiddenExclusivityError: createForbiddenExclusivityError$1,\n createInvalidArgumentTypeError: createInvalidArgumentTypeError$1,\n createInvalidArgumentValueError,\n createInvalidExceptionError: createInvalidExceptionError$2,\n createInvalidInterfaceError,\n createInvalidLegacyPluginError,\n createInvalidPluginDefinitionError,\n createInvalidPluginError,\n createInvalidPluginImplementationError,\n createInvalidReporterError,\n createMissingArgumentError: createMissingArgumentError$1,\n createMochaInstanceAlreadyDisposedError,\n createMochaInstanceAlreadyRunningError,\n createMultipleDoneError: createMultipleDoneError$1,\n createNoFilesMatchPatternError,\n createTimeoutError: createTimeoutError$1,\n createUnparsableFileError,\n createUnsupportedError: createUnsupportedError$2,\n deprecate,\n isMochaError: isMochaError$1,\n warn\n };\n\n var EventEmitter$1 = require$$0.EventEmitter;\n var Pending$1 = pending;\n var debug$1 = browser.exports('mocha:runnable');\n var milliseconds = ms$1;\n var utils$2 = utils$3;\n const {\n createInvalidExceptionError: createInvalidExceptionError$1,\n createMultipleDoneError,\n createTimeoutError\n } = errors$2;\n\n /**\n * Save timer references to avoid Sinon interfering (see GH-237).\n * @private\n */\n var Date$3 = commonjsGlobal.Date;\n var setTimeout$2 = commonjsGlobal.setTimeout;\n var clearTimeout$1 = commonjsGlobal.clearTimeout;\n var toString = Object.prototype.toString;\n\n var runnable = Runnable$3;\n\n /**\n * Initialize a new `Runnable` with the given `title` and callback `fn`.\n *\n * @class\n * @extends external:EventEmitter\n * @public\n * @param {String} title\n * @param {Function} fn\n */\n function Runnable$3(title, fn) {\n this.title = title;\n this.fn = fn;\n this.body = (fn || '').toString();\n this.async = fn && fn.length;\n this.sync = !this.async;\n this._timeout = 2000;\n this._slow = 75;\n this._retries = -1;\n utils$2.assignNewMochaID(this);\n Object.defineProperty(this, 'id', {\n get() {\n return utils$2.getMochaID(this);\n }\n });\n this.reset();\n }\n\n /**\n * Inherit from `EventEmitter.prototype`.\n */\n utils$2.inherits(Runnable$3, EventEmitter$1);\n\n /**\n * Resets the state initially or for a next run.\n */\n Runnable$3.prototype.reset = function () {\n this.timedOut = false;\n this._currentRetry = 0;\n this.pending = false;\n delete this.state;\n delete this.err;\n };\n\n /**\n * Get current timeout value in msecs.\n *\n * @private\n * @returns {number} current timeout threshold value\n */\n /**\n * @summary\n * Set timeout threshold value (msecs).\n *\n * @description\n * A string argument can use shorthand (e.g., \"2s\") and will be converted.\n * The value will be clamped to range [0, 2^31-1].\n * If clamped value matches either range endpoint, timeouts will be disabled.\n *\n * @private\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value}\n * @param {number|string} ms - Timeout threshold value.\n * @returns {Runnable} this\n * @chainable\n */\n Runnable$3.prototype.timeout = function (ms) {\n if (!arguments.length) {\n return this._timeout;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n\n // Clamp to range\n var INT_MAX = Math.pow(2, 31) - 1;\n var range = [0, INT_MAX];\n ms = utils$2.clamp(ms, range);\n\n // see #1652 for reasoning\n if (ms === range[0] || ms === range[1]) {\n this._timeout = 0;\n } else {\n this._timeout = ms;\n }\n debug$1('timeout %d', this._timeout);\n\n if (this.timer) {\n this.resetTimeout();\n }\n return this;\n };\n\n /**\n * Set or get slow `ms`.\n *\n * @private\n * @param {number|string} ms\n * @return {Runnable|number} ms or Runnable instance.\n */\n Runnable$3.prototype.slow = function (ms) {\n if (!arguments.length || typeof ms === 'undefined') {\n return this._slow;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n debug$1('slow %d', ms);\n this._slow = ms;\n return this;\n };\n\n /**\n * Halt and mark as pending.\n *\n * @memberof Mocha.Runnable\n * @public\n */\n Runnable$3.prototype.skip = function () {\n this.pending = true;\n throw new Pending$1('sync skip; aborting execution');\n };\n\n /**\n * Check if this runnable or its parent suite is marked as pending.\n *\n * @private\n */\n Runnable$3.prototype.isPending = function () {\n return this.pending || (this.parent && this.parent.isPending());\n };\n\n /**\n * Return `true` if this Runnable has failed.\n * @return {boolean}\n * @private\n */\n Runnable$3.prototype.isFailed = function () {\n return !this.isPending() && this.state === constants$3.STATE_FAILED;\n };\n\n /**\n * Return `true` if this Runnable has passed.\n * @return {boolean}\n * @private\n */\n Runnable$3.prototype.isPassed = function () {\n return !this.isPending() && this.state === constants$3.STATE_PASSED;\n };\n\n /**\n * Set or get number of retries.\n *\n * @private\n */\n Runnable$3.prototype.retries = function (n) {\n if (!arguments.length) {\n return this._retries;\n }\n this._retries = n;\n };\n\n /**\n * Set or get current retry\n *\n * @private\n */\n Runnable$3.prototype.currentRetry = function (n) {\n if (!arguments.length) {\n return this._currentRetry;\n }\n this._currentRetry = n;\n };\n\n /**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @memberof Mocha.Runnable\n * @public\n * @return {string}\n */\n Runnable$3.prototype.fullTitle = function () {\n return this.titlePath().join(' ');\n };\n\n /**\n * Return the title path generated by concatenating the parent's title path with the title.\n *\n * @memberof Mocha.Runnable\n * @public\n * @return {string}\n */\n Runnable$3.prototype.titlePath = function () {\n return this.parent.titlePath().concat([this.title]);\n };\n\n /**\n * Clear the timeout.\n *\n * @private\n */\n Runnable$3.prototype.clearTimeout = function () {\n clearTimeout$1(this.timer);\n };\n\n /**\n * Reset the timeout.\n *\n * @private\n */\n Runnable$3.prototype.resetTimeout = function () {\n var self = this;\n var ms = this.timeout();\n\n if (ms === 0) {\n return;\n }\n this.clearTimeout();\n this.timer = setTimeout$2(function () {\n if (self.timeout() === 0) {\n return;\n }\n self.callback(self._timeoutError(ms));\n self.timedOut = true;\n }, ms);\n };\n\n /**\n * Set or get a list of whitelisted globals for this test run.\n *\n * @private\n * @param {string[]} globals\n */\n Runnable$3.prototype.globals = function (globals) {\n if (!arguments.length) {\n return this._allowedGlobals;\n }\n this._allowedGlobals = globals;\n };\n\n /**\n * Run the test and invoke `fn(err)`.\n *\n * @param {Function} fn\n * @private\n */\n Runnable$3.prototype.run = function (fn) {\n var self = this;\n var start = new Date$3();\n var ctx = this.ctx;\n var finished;\n var errorWasHandled = false;\n\n if (this.isPending()) return fn();\n\n // Sometimes the ctx exists, but it is not runnable\n if (ctx && ctx.runnable) {\n ctx.runnable(this);\n }\n\n // called multiple times\n function multiple(err) {\n if (errorWasHandled) {\n return;\n }\n errorWasHandled = true;\n self.emit('error', createMultipleDoneError(self, err));\n }\n\n // finished\n function done(err) {\n var ms = self.timeout();\n if (self.timedOut) {\n return;\n }\n\n if (finished) {\n return multiple(err);\n }\n\n self.clearTimeout();\n self.duration = new Date$3() - start;\n finished = true;\n if (!err && self.duration > ms && ms > 0) {\n err = self._timeoutError(ms);\n }\n fn(err);\n }\n\n // for .resetTimeout() and Runner#uncaught()\n this.callback = done;\n\n if (this.fn && typeof this.fn.call !== 'function') {\n done(\n new TypeError(\n 'A runnable must be passed a function as its second argument.'\n )\n );\n return;\n }\n\n // explicit async with `done` argument\n if (this.async) {\n this.resetTimeout();\n\n // allows skip() to be used in an explicit async context\n this.skip = function asyncSkip() {\n this.pending = true;\n done();\n // halt execution, the uncaught handler will ignore the failure.\n throw new Pending$1('async skip; aborting execution');\n };\n\n try {\n callFnAsync(this.fn);\n } catch (err) {\n // handles async runnables which actually run synchronously\n errorWasHandled = true;\n if (err instanceof Pending$1) {\n return; // done() is already called in this.skip()\n } else if (this.allowUncaught) {\n throw err;\n }\n done(Runnable$3.toValueOrError(err));\n }\n return;\n }\n\n // sync or promise-returning\n try {\n callFn(this.fn);\n } catch (err) {\n errorWasHandled = true;\n if (err instanceof Pending$1) {\n return done();\n } else if (this.allowUncaught) {\n throw err;\n }\n done(Runnable$3.toValueOrError(err));\n }\n\n function callFn(fn) {\n var result = fn.call(ctx);\n if (result && typeof result.then === 'function') {\n self.resetTimeout();\n result.then(\n function () {\n done();\n // Return null so libraries like bluebird do not warn about\n // subsequently constructed Promises.\n return null;\n },\n function (reason) {\n done(reason || new Error('Promise rejected with no or falsy reason'));\n }\n );\n } else {\n if (self.asyncOnly) {\n return done(\n new Error(\n '--async-only option in use without declaring `done()` or returning a promise'\n )\n );\n }\n\n done();\n }\n }\n\n function callFnAsync(fn) {\n var result = fn.call(ctx, function (err) {\n if (err instanceof Error || toString.call(err) === '[object Error]') {\n return done(err);\n }\n if (err) {\n if (Object.prototype.toString.call(err) === '[object Object]') {\n return done(\n new Error('done() invoked with non-Error: ' + JSON.stringify(err))\n );\n }\n return done(new Error('done() invoked with non-Error: ' + err));\n }\n if (result && utils$2.isPromise(result)) {\n return done(\n new Error(\n 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.'\n )\n );\n }\n\n done();\n });\n }\n };\n\n /**\n * Instantiates a \"timeout\" error\n *\n * @param {number} ms - Timeout (in milliseconds)\n * @returns {Error} a \"timeout\" error\n * @private\n */\n Runnable$3.prototype._timeoutError = function (ms) {\n let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves.`;\n if (this.file) {\n msg += ' (' + this.file + ')';\n }\n return createTimeoutError(msg, ms, this.file);\n };\n\n var constants$3 = utils$2.defineConstants(\n /**\n * {@link Runnable}-related constants.\n * @public\n * @memberof Runnable\n * @readonly\n * @static\n * @alias constants\n * @enum {string}\n */\n {\n /**\n * Value of `state` prop when a `Runnable` has failed\n */\n STATE_FAILED: 'failed',\n /**\n * Value of `state` prop when a `Runnable` has passed\n */\n STATE_PASSED: 'passed',\n /**\n * Value of `state` prop when a `Runnable` has been skipped by user\n */\n STATE_PENDING: 'pending'\n }\n );\n\n /**\n * Given `value`, return identity if truthy, otherwise create an \"invalid exception\" error and return that.\n * @param {*} [value] - Value to return, if present\n * @returns {*|Error} `value`, otherwise an `Error`\n * @private\n */\n Runnable$3.toValueOrError = function (value) {\n return (\n value ||\n createInvalidExceptionError$1(\n 'Runnable failed with falsy or undefined exception. Please throw an Error instead.',\n value\n )\n );\n };\n\n Runnable$3.constants = constants$3;\n\n var suite = {exports: {}};\n\n var Runnable$2 = runnable;\n const {inherits, constants: constants$2} = utils$3;\n const {MOCHA_ID_PROP_NAME: MOCHA_ID_PROP_NAME$1} = constants$2;\n\n /**\n * Expose `Hook`.\n */\n\n var hook = Hook;\n\n /**\n * Initialize a new `Hook` with the given `title` and callback `fn`\n *\n * @class\n * @extends Runnable\n * @param {String} title\n * @param {Function} fn\n */\n function Hook(title, fn) {\n Runnable$2.call(this, title, fn);\n this.type = 'hook';\n }\n\n /**\n * Inherit from `Runnable.prototype`.\n */\n inherits(Hook, Runnable$2);\n\n /**\n * Resets the state for a next run.\n */\n Hook.prototype.reset = function () {\n Runnable$2.prototype.reset.call(this);\n delete this._error;\n };\n\n /**\n * Get or set the test `err`.\n *\n * @memberof Hook\n * @public\n * @param {Error} err\n * @return {Error}\n */\n Hook.prototype.error = function (err) {\n if (!arguments.length) {\n err = this._error;\n this._error = null;\n return err;\n }\n\n this._error = err;\n };\n\n /**\n * Returns an object suitable for IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\n Hook.prototype.serialize = function serialize() {\n return {\n $$currentRetry: this.currentRetry(),\n $$fullTitle: this.fullTitle(),\n $$isPending: Boolean(this.isPending()),\n $$titlePath: this.titlePath(),\n ctx:\n this.ctx && this.ctx.currentTest\n ? {\n currentTest: {\n title: this.ctx.currentTest.title,\n [MOCHA_ID_PROP_NAME$1]: this.ctx.currentTest.id\n }\n }\n : {},\n duration: this.duration,\n file: this.file,\n parent: {\n $$fullTitle: this.parent.fullTitle(),\n [MOCHA_ID_PROP_NAME$1]: this.parent.id\n },\n state: this.state,\n title: this.title,\n type: this.type,\n [MOCHA_ID_PROP_NAME$1]: this.id\n };\n };\n\n (function (module, exports) {\n\n /**\n * Module dependencies.\n * @private\n */\n const {EventEmitter} = require$$0;\n const Hook = hook;\n var {\n assignNewMochaID,\n clamp,\n constants: utilsConstants,\n defineConstants,\n getMochaID,\n inherits,\n isString\n } = utils$3;\n const debug = browser.exports('mocha:suite');\n const milliseconds = ms$1;\n const errors = errors$2;\n\n const {MOCHA_ID_PROP_NAME} = utilsConstants;\n\n /**\n * Expose `Suite`.\n */\n\n module.exports = Suite;\n\n /**\n * Create a new `Suite` with the given `title` and parent `Suite`.\n *\n * @public\n * @param {Suite} parent - Parent suite (required!)\n * @param {string} title - Title\n * @return {Suite}\n */\n Suite.create = function (parent, title) {\n var suite = new Suite(title, parent.ctx);\n suite.parent = parent;\n title = suite.fullTitle();\n parent.addSuite(suite);\n return suite;\n };\n\n /**\n * Constructs a new `Suite` instance with the given `title`, `ctx`, and `isRoot`.\n *\n * @public\n * @class\n * @extends EventEmitter\n * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter|EventEmitter}\n * @param {string} title - Suite title.\n * @param {Context} parentContext - Parent context instance.\n * @param {boolean} [isRoot=false] - Whether this is the root suite.\n */\n function Suite(title, parentContext, isRoot) {\n if (!isString(title)) {\n throw errors.createInvalidArgumentTypeError(\n 'Suite argument \"title\" must be a string. Received type \"' +\n typeof title +\n '\"',\n 'title',\n 'string'\n );\n }\n this.title = title;\n function Context() {}\n Context.prototype = parentContext;\n this.ctx = new Context();\n this.suites = [];\n this.tests = [];\n this.root = isRoot === true;\n this.pending = false;\n this._retries = -1;\n this._beforeEach = [];\n this._beforeAll = [];\n this._afterEach = [];\n this._afterAll = [];\n this._timeout = 2000;\n this._slow = 75;\n this._bail = false;\n this._onlyTests = [];\n this._onlySuites = [];\n assignNewMochaID(this);\n\n Object.defineProperty(this, 'id', {\n get() {\n return getMochaID(this);\n }\n });\n\n this.reset();\n }\n\n /**\n * Inherit from `EventEmitter.prototype`.\n */\n inherits(Suite, EventEmitter);\n\n /**\n * Resets the state initially or for a next run.\n */\n Suite.prototype.reset = function () {\n this.delayed = false;\n function doReset(thingToReset) {\n thingToReset.reset();\n }\n this.suites.forEach(doReset);\n this.tests.forEach(doReset);\n this._beforeEach.forEach(doReset);\n this._afterEach.forEach(doReset);\n this._beforeAll.forEach(doReset);\n this._afterAll.forEach(doReset);\n };\n\n /**\n * Return a clone of this `Suite`.\n *\n * @private\n * @return {Suite}\n */\n Suite.prototype.clone = function () {\n var suite = new Suite(this.title);\n debug('clone');\n suite.ctx = this.ctx;\n suite.root = this.root;\n suite.timeout(this.timeout());\n suite.retries(this.retries());\n suite.slow(this.slow());\n suite.bail(this.bail());\n return suite;\n };\n\n /**\n * Set or get timeout `ms` or short-hand such as \"2s\".\n *\n * @private\n * @todo Do not attempt to set value if `ms` is undefined\n * @param {number|string} ms\n * @return {Suite|number} for chaining\n */\n Suite.prototype.timeout = function (ms) {\n if (!arguments.length) {\n return this._timeout;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n\n // Clamp to range\n var INT_MAX = Math.pow(2, 31) - 1;\n var range = [0, INT_MAX];\n ms = clamp(ms, range);\n\n debug('timeout %d', ms);\n this._timeout = parseInt(ms, 10);\n return this;\n };\n\n /**\n * Set or get number of times to retry a failed test.\n *\n * @private\n * @param {number|string} n\n * @return {Suite|number} for chaining\n */\n Suite.prototype.retries = function (n) {\n if (!arguments.length) {\n return this._retries;\n }\n debug('retries %d', n);\n this._retries = parseInt(n, 10) || 0;\n return this;\n };\n\n /**\n * Set or get slow `ms` or short-hand such as \"2s\".\n *\n * @private\n * @param {number|string} ms\n * @return {Suite|number} for chaining\n */\n Suite.prototype.slow = function (ms) {\n if (!arguments.length) {\n return this._slow;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n debug('slow %d', ms);\n this._slow = ms;\n return this;\n };\n\n /**\n * Set or get whether to bail after first error.\n *\n * @private\n * @param {boolean} bail\n * @return {Suite|number} for chaining\n */\n Suite.prototype.bail = function (bail) {\n if (!arguments.length) {\n return this._bail;\n }\n debug('bail %s', bail);\n this._bail = bail;\n return this;\n };\n\n /**\n * Check if this suite or its parent suite is marked as pending.\n *\n * @private\n */\n Suite.prototype.isPending = function () {\n return this.pending || (this.parent && this.parent.isPending());\n };\n\n /**\n * Generic hook-creator.\n * @private\n * @param {string} title - Title of hook\n * @param {Function} fn - Hook callback\n * @returns {Hook} A new hook\n */\n Suite.prototype._createHook = function (title, fn) {\n var hook = new Hook(title, fn);\n hook.parent = this;\n hook.timeout(this.timeout());\n hook.retries(this.retries());\n hook.slow(this.slow());\n hook.ctx = this.ctx;\n hook.file = this.file;\n return hook;\n };\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\n Suite.prototype.beforeAll = function (title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"before all\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._beforeAll.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook);\n return this;\n };\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\n Suite.prototype.afterAll = function (title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"after all\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._afterAll.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook);\n return this;\n };\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\n Suite.prototype.beforeEach = function (title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"before each\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._beforeEach.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook);\n return this;\n };\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\n Suite.prototype.afterEach = function (title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"after each\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._afterEach.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook);\n return this;\n };\n\n /**\n * Add a test `suite`.\n *\n * @private\n * @param {Suite} suite\n * @return {Suite} for chaining\n */\n Suite.prototype.addSuite = function (suite) {\n suite.parent = this;\n suite.root = false;\n suite.timeout(this.timeout());\n suite.retries(this.retries());\n suite.slow(this.slow());\n suite.bail(this.bail());\n this.suites.push(suite);\n this.emit(constants.EVENT_SUITE_ADD_SUITE, suite);\n return this;\n };\n\n /**\n * Add a `test` to this suite.\n *\n * @private\n * @param {Test} test\n * @return {Suite} for chaining\n */\n Suite.prototype.addTest = function (test) {\n test.parent = this;\n test.timeout(this.timeout());\n test.retries(this.retries());\n test.slow(this.slow());\n test.ctx = this.ctx;\n this.tests.push(test);\n this.emit(constants.EVENT_SUITE_ADD_TEST, test);\n return this;\n };\n\n /**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @memberof Suite\n * @public\n * @return {string}\n */\n Suite.prototype.fullTitle = function () {\n return this.titlePath().join(' ');\n };\n\n /**\n * Return the title path generated by recursively concatenating the parent's\n * title path.\n *\n * @memberof Suite\n * @public\n * @return {string}\n */\n Suite.prototype.titlePath = function () {\n var result = [];\n if (this.parent) {\n result = result.concat(this.parent.titlePath());\n }\n if (!this.root) {\n result.push(this.title);\n }\n return result;\n };\n\n /**\n * Return the total number of tests.\n *\n * @memberof Suite\n * @public\n * @return {number}\n */\n Suite.prototype.total = function () {\n return (\n this.suites.reduce(function (sum, suite) {\n return sum + suite.total();\n }, 0) + this.tests.length\n );\n };\n\n /**\n * Iterates through each suite recursively to find all tests. Applies a\n * function in the format `fn(test)`.\n *\n * @private\n * @param {Function} fn\n * @return {Suite}\n */\n Suite.prototype.eachTest = function (fn) {\n this.tests.forEach(fn);\n this.suites.forEach(function (suite) {\n suite.eachTest(fn);\n });\n return this;\n };\n\n /**\n * This will run the root suite if we happen to be running in delayed mode.\n * @private\n */\n Suite.prototype.run = function run() {\n if (this.root) {\n this.emit(constants.EVENT_ROOT_SUITE_RUN);\n }\n };\n\n /**\n * Determines whether a suite has an `only` test or suite as a descendant.\n *\n * @private\n * @returns {Boolean}\n */\n Suite.prototype.hasOnly = function hasOnly() {\n return (\n this._onlyTests.length > 0 ||\n this._onlySuites.length > 0 ||\n this.suites.some(function (suite) {\n return suite.hasOnly();\n })\n );\n };\n\n /**\n * Filter suites based on `isOnly` logic.\n *\n * @private\n * @returns {Boolean}\n */\n Suite.prototype.filterOnly = function filterOnly() {\n if (this._onlyTests.length) {\n // If the suite contains `only` tests, run those and ignore any nested suites.\n this.tests = this._onlyTests;\n this.suites = [];\n } else {\n // Otherwise, do not run any of the tests in this suite.\n this.tests = [];\n this._onlySuites.forEach(function (onlySuite) {\n // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite.\n // Otherwise, all of the tests on this `only` suite should be run, so don't filter it.\n if (onlySuite.hasOnly()) {\n onlySuite.filterOnly();\n }\n });\n // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants.\n var onlySuites = this._onlySuites;\n this.suites = this.suites.filter(function (childSuite) {\n return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly();\n });\n }\n // Keep the suite only if there is something to run\n return this.tests.length > 0 || this.suites.length > 0;\n };\n\n /**\n * Adds a suite to the list of subsuites marked `only`.\n *\n * @private\n * @param {Suite} suite\n */\n Suite.prototype.appendOnlySuite = function (suite) {\n this._onlySuites.push(suite);\n };\n\n /**\n * Marks a suite to be `only`.\n *\n * @private\n */\n Suite.prototype.markOnly = function () {\n this.parent && this.parent.appendOnlySuite(this);\n };\n\n /**\n * Adds a test to the list of tests marked `only`.\n *\n * @private\n * @param {Test} test\n */\n Suite.prototype.appendOnlyTest = function (test) {\n this._onlyTests.push(test);\n };\n\n /**\n * Returns the array of hooks by hook name; see `HOOK_TYPE_*` constants.\n * @private\n */\n Suite.prototype.getHooks = function getHooks(name) {\n return this['_' + name];\n };\n\n /**\n * cleans all references from this suite and all child suites.\n */\n Suite.prototype.dispose = function () {\n this.suites.forEach(function (suite) {\n suite.dispose();\n });\n this.cleanReferences();\n };\n\n /**\n * Cleans up the references to all the deferred functions\n * (before/after/beforeEach/afterEach) and tests of a Suite.\n * These must be deleted otherwise a memory leak can happen,\n * as those functions may reference variables from closures,\n * thus those variables can never be garbage collected as long\n * as the deferred functions exist.\n *\n * @private\n */\n Suite.prototype.cleanReferences = function cleanReferences() {\n function cleanArrReferences(arr) {\n for (var i = 0; i < arr.length; i++) {\n delete arr[i].fn;\n }\n }\n\n if (Array.isArray(this._beforeAll)) {\n cleanArrReferences(this._beforeAll);\n }\n\n if (Array.isArray(this._beforeEach)) {\n cleanArrReferences(this._beforeEach);\n }\n\n if (Array.isArray(this._afterAll)) {\n cleanArrReferences(this._afterAll);\n }\n\n if (Array.isArray(this._afterEach)) {\n cleanArrReferences(this._afterEach);\n }\n\n for (var i = 0; i < this.tests.length; i++) {\n delete this.tests[i].fn;\n }\n };\n\n /**\n * Returns an object suitable for IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\n Suite.prototype.serialize = function serialize() {\n return {\n _bail: this._bail,\n $$fullTitle: this.fullTitle(),\n $$isPending: Boolean(this.isPending()),\n root: this.root,\n title: this.title,\n [MOCHA_ID_PROP_NAME]: this.id,\n parent: this.parent ? {[MOCHA_ID_PROP_NAME]: this.parent.id} : null\n };\n };\n\n var constants = defineConstants(\n /**\n * {@link Suite}-related constants.\n * @public\n * @memberof Suite\n * @alias constants\n * @readonly\n * @static\n * @enum {string}\n */\n {\n /**\n * Event emitted after a test file has been loaded. Not emitted in browser.\n */\n EVENT_FILE_POST_REQUIRE: 'post-require',\n /**\n * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected.\n */\n EVENT_FILE_PRE_REQUIRE: 'pre-require',\n /**\n * Event emitted immediately after a test file has been loaded. Not emitted in browser.\n */\n EVENT_FILE_REQUIRE: 'require',\n /**\n * Event emitted when `global.run()` is called (use with `delay` option).\n */\n EVENT_ROOT_SUITE_RUN: 'run',\n\n /**\n * Namespace for collection of a `Suite`'s \"after all\" hooks.\n */\n HOOK_TYPE_AFTER_ALL: 'afterAll',\n /**\n * Namespace for collection of a `Suite`'s \"after each\" hooks.\n */\n HOOK_TYPE_AFTER_EACH: 'afterEach',\n /**\n * Namespace for collection of a `Suite`'s \"before all\" hooks.\n */\n HOOK_TYPE_BEFORE_ALL: 'beforeAll',\n /**\n * Namespace for collection of a `Suite`'s \"before each\" hooks.\n */\n HOOK_TYPE_BEFORE_EACH: 'beforeEach',\n\n /**\n * Emitted after a child `Suite` has been added to a `Suite`.\n */\n EVENT_SUITE_ADD_SUITE: 'suite',\n /**\n * Emitted after an \"after all\" `Hook` has been added to a `Suite`.\n */\n EVENT_SUITE_ADD_HOOK_AFTER_ALL: 'afterAll',\n /**\n * Emitted after an \"after each\" `Hook` has been added to a `Suite`.\n */\n EVENT_SUITE_ADD_HOOK_AFTER_EACH: 'afterEach',\n /**\n * Emitted after an \"before all\" `Hook` has been added to a `Suite`.\n */\n EVENT_SUITE_ADD_HOOK_BEFORE_ALL: 'beforeAll',\n /**\n * Emitted after an \"before each\" `Hook` has been added to a `Suite`.\n */\n EVENT_SUITE_ADD_HOOK_BEFORE_EACH: 'beforeEach',\n /**\n * Emitted after a `Test` has been added to a `Suite`.\n */\n EVENT_SUITE_ADD_TEST: 'test'\n }\n );\n\n Suite.constants = constants;\n }(suite));\n\n /**\n * Module dependencies.\n * @private\n */\n var EventEmitter = require$$0.EventEmitter;\n var Pending = pending;\n var utils$1 = utils$3;\n var debug = browser.exports('mocha:runner');\n var Runnable$1 = runnable;\n var Suite$2 = suite.exports;\n var HOOK_TYPE_BEFORE_EACH = Suite$2.constants.HOOK_TYPE_BEFORE_EACH;\n var HOOK_TYPE_AFTER_EACH = Suite$2.constants.HOOK_TYPE_AFTER_EACH;\n var HOOK_TYPE_AFTER_ALL = Suite$2.constants.HOOK_TYPE_AFTER_ALL;\n var HOOK_TYPE_BEFORE_ALL = Suite$2.constants.HOOK_TYPE_BEFORE_ALL;\n var EVENT_ROOT_SUITE_RUN = Suite$2.constants.EVENT_ROOT_SUITE_RUN;\n var STATE_FAILED = Runnable$1.constants.STATE_FAILED;\n var STATE_PASSED = Runnable$1.constants.STATE_PASSED;\n var STATE_PENDING = Runnable$1.constants.STATE_PENDING;\n var stackFilter = utils$1.stackTraceFilter();\n var stringify = utils$1.stringify;\n\n const {\n createInvalidExceptionError,\n createUnsupportedError: createUnsupportedError$1,\n createFatalError,\n isMochaError,\n constants: errorConstants\n } = errors$2;\n\n /**\n * Non-enumerable globals.\n * @private\n * @readonly\n */\n var globals = [\n 'setTimeout',\n 'clearTimeout',\n 'setInterval',\n 'clearInterval',\n 'XMLHttpRequest',\n 'Date',\n 'setImmediate',\n 'clearImmediate'\n ];\n\n var constants$1 = utils$1.defineConstants(\n /**\n * {@link Runner}-related constants.\n * @public\n * @memberof Runner\n * @readonly\n * @alias constants\n * @static\n * @enum {string}\n */\n {\n /**\n * Emitted when {@link Hook} execution begins\n */\n EVENT_HOOK_BEGIN: 'hook',\n /**\n * Emitted when {@link Hook} execution ends\n */\n EVENT_HOOK_END: 'hook end',\n /**\n * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution)\n */\n EVENT_RUN_BEGIN: 'start',\n /**\n * Emitted when Root {@link Suite} execution has been delayed via `delay` option\n */\n EVENT_DELAY_BEGIN: 'waiting',\n /**\n * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()`\n */\n EVENT_DELAY_END: 'ready',\n /**\n * Emitted when Root {@link Suite} execution ends\n */\n EVENT_RUN_END: 'end',\n /**\n * Emitted when {@link Suite} execution begins\n */\n EVENT_SUITE_BEGIN: 'suite',\n /**\n * Emitted when {@link Suite} execution ends\n */\n EVENT_SUITE_END: 'suite end',\n /**\n * Emitted when {@link Test} execution begins\n */\n EVENT_TEST_BEGIN: 'test',\n /**\n * Emitted when {@link Test} execution ends\n */\n EVENT_TEST_END: 'test end',\n /**\n * Emitted when {@link Test} execution fails\n */\n EVENT_TEST_FAIL: 'fail',\n /**\n * Emitted when {@link Test} execution succeeds\n */\n EVENT_TEST_PASS: 'pass',\n /**\n * Emitted when {@link Test} becomes pending\n */\n EVENT_TEST_PENDING: 'pending',\n /**\n * Emitted when {@link Test} execution has failed, but will retry\n */\n EVENT_TEST_RETRY: 'retry',\n /**\n * Initial state of Runner\n */\n STATE_IDLE: 'idle',\n /**\n * State set to this value when the Runner has started running\n */\n STATE_RUNNING: 'running',\n /**\n * State set to this value when the Runner has stopped\n */\n STATE_STOPPED: 'stopped'\n }\n );\n\n class Runner extends EventEmitter {\n /**\n * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}.\n *\n * @extends external:EventEmitter\n * @public\n * @class\n * @param {Suite} suite - Root suite\n * @param {Object} [opts] - Settings object\n * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.\n * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.\n * @param {boolean} [opts.dryRun] - Whether to report tests without running them.\n * @param {boolean} [opts.failZero] - Whether to fail test run if zero tests encountered.\n */\n constructor(suite, opts = {}) {\n super();\n\n var self = this;\n this._globals = [];\n this._abort = false;\n this.suite = suite;\n this._opts = opts;\n this.state = constants$1.STATE_IDLE;\n this.total = suite.total();\n this.failures = 0;\n /**\n * @type {Map>>}\n */\n this._eventListeners = new Map();\n this.on(constants$1.EVENT_TEST_END, function (test) {\n if (test.type === 'test' && test.retriedTest() && test.parent) {\n var idx =\n test.parent.tests && test.parent.tests.indexOf(test.retriedTest());\n if (idx > -1) test.parent.tests[idx] = test;\n }\n self.checkGlobals(test);\n });\n this.on(constants$1.EVENT_HOOK_END, function (hook) {\n self.checkGlobals(hook);\n });\n this._defaultGrep = /.*/;\n this.grep(this._defaultGrep);\n this.globals(this.globalProps());\n\n this.uncaught = this._uncaught.bind(this);\n this.unhandled = (reason, promise) => {\n if (isMochaError(reason)) {\n debug(\n 'trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:',\n reason\n );\n this.uncaught(reason);\n } else {\n debug(\n 'trapped unhandled rejection from (probably) user code; re-emitting on process'\n );\n this._removeEventListener(\n process,\n 'unhandledRejection',\n this.unhandled\n );\n try {\n process.emit('unhandledRejection', reason, promise);\n } finally {\n this._addEventListener(process, 'unhandledRejection', this.unhandled);\n }\n }\n };\n }\n }\n\n /**\n * Wrapper for setImmediate, process.nextTick, or browser polyfill.\n *\n * @param {Function} fn\n * @private\n */\n Runner.immediately = commonjsGlobal.setImmediate || nextTick$1;\n\n /**\n * Replacement for `target.on(eventName, listener)` that does bookkeeping to remove them when this runner instance is disposed.\n * @param {EventEmitter} target - The `EventEmitter`\n * @param {string} eventName - The event name\n * @param {string} fn - Listener function\n * @private\n */\n Runner.prototype._addEventListener = function (target, eventName, listener) {\n debug(\n '_addEventListener(): adding for event %s; %d current listeners',\n eventName,\n target.listenerCount(eventName)\n );\n /* istanbul ignore next */\n if (\n this._eventListeners.has(target) &&\n this._eventListeners.get(target).has(eventName) &&\n this._eventListeners.get(target).get(eventName).has(listener)\n ) {\n debug(\n 'warning: tried to attach duplicate event listener for %s',\n eventName\n );\n return;\n }\n target.on(eventName, listener);\n const targetListeners = this._eventListeners.has(target)\n ? this._eventListeners.get(target)\n : new Map();\n const targetEventListeners = targetListeners.has(eventName)\n ? targetListeners.get(eventName)\n : new Set();\n targetEventListeners.add(listener);\n targetListeners.set(eventName, targetEventListeners);\n this._eventListeners.set(target, targetListeners);\n };\n\n /**\n * Replacement for `target.removeListener(eventName, listener)` that also updates the bookkeeping.\n * @param {EventEmitter} target - The `EventEmitter`\n * @param {string} eventName - The event name\n * @param {function} listener - Listener function\n * @private\n */\n Runner.prototype._removeEventListener = function (target, eventName, listener) {\n target.removeListener(eventName, listener);\n\n if (this._eventListeners.has(target)) {\n const targetListeners = this._eventListeners.get(target);\n if (targetListeners.has(eventName)) {\n const targetEventListeners = targetListeners.get(eventName);\n targetEventListeners.delete(listener);\n if (!targetEventListeners.size) {\n targetListeners.delete(eventName);\n }\n }\n if (!targetListeners.size) {\n this._eventListeners.delete(target);\n }\n } else {\n debug('trying to remove listener for untracked object %s', target);\n }\n };\n\n /**\n * Removes all event handlers set during a run on this instance.\n * Remark: this does _not_ clean/dispose the tests or suites themselves.\n */\n Runner.prototype.dispose = function () {\n this.removeAllListeners();\n this._eventListeners.forEach((targetListeners, target) => {\n targetListeners.forEach((targetEventListeners, eventName) => {\n targetEventListeners.forEach(listener => {\n target.removeListener(eventName, listener);\n });\n });\n });\n this._eventListeners.clear();\n };\n\n /**\n * Run tests with full titles matching `re`. Updates runner.total\n * with number of tests matched.\n *\n * @public\n * @memberof Runner\n * @param {RegExp} re\n * @param {boolean} invert\n * @return {Runner} Runner instance.\n */\n Runner.prototype.grep = function (re, invert) {\n debug('grep(): setting to %s', re);\n this._grep = re;\n this._invert = invert;\n this.total = this.grepTotal(this.suite);\n return this;\n };\n\n /**\n * Returns the number of tests matching the grep search for the\n * given suite.\n *\n * @memberof Runner\n * @public\n * @param {Suite} suite\n * @return {number}\n */\n Runner.prototype.grepTotal = function (suite) {\n var self = this;\n var total = 0;\n\n suite.eachTest(function (test) {\n var match = self._grep.test(test.fullTitle());\n if (self._invert) {\n match = !match;\n }\n if (match) {\n total++;\n }\n });\n\n return total;\n };\n\n /**\n * Return a list of global properties.\n *\n * @return {Array}\n * @private\n */\n Runner.prototype.globalProps = function () {\n var props = Object.keys(commonjsGlobal);\n\n // non-enumerables\n for (var i = 0; i < globals.length; ++i) {\n if (~props.indexOf(globals[i])) {\n continue;\n }\n props.push(globals[i]);\n }\n\n return props;\n };\n\n /**\n * Allow the given `arr` of globals.\n *\n * @public\n * @memberof Runner\n * @param {Array} arr\n * @return {Runner} Runner instance.\n */\n Runner.prototype.globals = function (arr) {\n if (!arguments.length) {\n return this._globals;\n }\n debug('globals(): setting to %O', arr);\n this._globals = this._globals.concat(arr);\n return this;\n };\n\n /**\n * Check for global variable leaks.\n *\n * @private\n */\n Runner.prototype.checkGlobals = function (test) {\n if (!this.checkLeaks) {\n return;\n }\n var ok = this._globals;\n\n var globals = this.globalProps();\n var leaks;\n\n if (test) {\n ok = ok.concat(test._allowedGlobals || []);\n }\n\n if (this.prevGlobalsLength === globals.length) {\n return;\n }\n this.prevGlobalsLength = globals.length;\n\n leaks = filterLeaks(ok, globals);\n this._globals = this._globals.concat(leaks);\n\n if (leaks.length) {\n var msg = `global leak(s) detected: ${leaks.map(e => `'${e}'`).join(', ')}`;\n this.fail(test, new Error(msg));\n }\n };\n\n /**\n * Fail the given `test`.\n *\n * If `test` is a hook, failures work in the following pattern:\n * - If bail, run corresponding `after each` and `after` hooks,\n * then exit\n * - Failed `before` hook skips all tests in a suite and subsuites,\n * but jumps to corresponding `after` hook\n * - Failed `before each` hook skips remaining tests in a\n * suite and jumps to corresponding `after each` hook,\n * which is run only once\n * - Failed `after` hook does not alter execution order\n * - Failed `after each` hook skips remaining tests in a\n * suite and subsuites, but executes other `after each`\n * hooks\n *\n * @private\n * @param {Runnable} test\n * @param {Error} err\n * @param {boolean} [force=false] - Whether to fail a pending test.\n */\n Runner.prototype.fail = function (test, err, force) {\n force = force === true;\n if (test.isPending() && !force) {\n return;\n }\n if (this.state === constants$1.STATE_STOPPED) {\n if (err.code === errorConstants.MULTIPLE_DONE) {\n throw err;\n }\n throw createFatalError(\n 'Test failed after root suite execution completed!',\n err\n );\n }\n\n ++this.failures;\n debug('total number of failures: %d', this.failures);\n test.state = STATE_FAILED;\n\n if (!isError(err)) {\n err = thrown2Error(err);\n }\n\n try {\n err.stack =\n this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack);\n } catch (ignore) {\n // some environments do not take kindly to monkeying with the stack\n }\n\n this.emit(constants$1.EVENT_TEST_FAIL, test, err);\n };\n\n /**\n * Run hook `name` callbacks and then invoke `fn()`.\n *\n * @private\n * @param {string} name\n * @param {Function} fn\n */\n\n Runner.prototype.hook = function (name, fn) {\n if (this._opts.dryRun) return fn();\n\n var suite = this.suite;\n var hooks = suite.getHooks(name);\n var self = this;\n\n function next(i) {\n var hook = hooks[i];\n if (!hook) {\n return fn();\n }\n self.currentRunnable = hook;\n\n if (name === HOOK_TYPE_BEFORE_ALL) {\n hook.ctx.currentTest = hook.parent.tests[0];\n } else if (name === HOOK_TYPE_AFTER_ALL) {\n hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1];\n } else {\n hook.ctx.currentTest = self.test;\n }\n\n setHookTitle(hook);\n\n hook.allowUncaught = self.allowUncaught;\n\n self.emit(constants$1.EVENT_HOOK_BEGIN, hook);\n\n if (!hook.listeners('error').length) {\n self._addEventListener(hook, 'error', function (err) {\n self.fail(hook, err);\n });\n }\n\n hook.run(function cbHookRun(err) {\n var testError = hook.error();\n if (testError) {\n self.fail(self.test, testError);\n }\n // conditional skip\n if (hook.pending) {\n if (name === HOOK_TYPE_AFTER_EACH) {\n // TODO define and implement use case\n if (self.test) {\n self.test.pending = true;\n }\n } else if (name === HOOK_TYPE_BEFORE_EACH) {\n if (self.test) {\n self.test.pending = true;\n }\n self.emit(constants$1.EVENT_HOOK_END, hook);\n hook.pending = false; // activates hook for next test\n return fn(new Error('abort hookDown'));\n } else if (name === HOOK_TYPE_BEFORE_ALL) {\n suite.tests.forEach(function (test) {\n test.pending = true;\n });\n suite.suites.forEach(function (suite) {\n suite.pending = true;\n });\n hooks = [];\n } else {\n hook.pending = false;\n var errForbid = createUnsupportedError$1('`this.skip` forbidden');\n self.fail(hook, errForbid);\n return fn(errForbid);\n }\n } else if (err) {\n self.fail(hook, err);\n // stop executing hooks, notify callee of hook err\n return fn(err);\n }\n self.emit(constants$1.EVENT_HOOK_END, hook);\n delete hook.ctx.currentTest;\n setHookTitle(hook);\n next(++i);\n });\n\n function setHookTitle(hook) {\n hook.originalTitle = hook.originalTitle || hook.title;\n if (hook.ctx && hook.ctx.currentTest) {\n hook.title = `${hook.originalTitle} for \"${hook.ctx.currentTest.title}\"`;\n } else {\n var parentTitle;\n if (hook.parent.title) {\n parentTitle = hook.parent.title;\n } else {\n parentTitle = hook.parent.root ? '{root}' : '';\n }\n hook.title = `${hook.originalTitle} in \"${parentTitle}\"`;\n }\n }\n }\n\n Runner.immediately(function () {\n next(0);\n });\n };\n\n /**\n * Run hook `name` for the given array of `suites`\n * in order, and callback `fn(err, errSuite)`.\n *\n * @private\n * @param {string} name\n * @param {Array} suites\n * @param {Function} fn\n */\n Runner.prototype.hooks = function (name, suites, fn) {\n var self = this;\n var orig = this.suite;\n\n function next(suite) {\n self.suite = suite;\n\n if (!suite) {\n self.suite = orig;\n return fn();\n }\n\n self.hook(name, function (err) {\n if (err) {\n var errSuite = self.suite;\n self.suite = orig;\n return fn(err, errSuite);\n }\n\n next(suites.pop());\n });\n }\n\n next(suites.pop());\n };\n\n /**\n * Run 'afterEach' hooks from bottom up.\n *\n * @param {String} name\n * @param {Function} fn\n * @private\n */\n Runner.prototype.hookUp = function (name, fn) {\n var suites = [this.suite].concat(this.parents()).reverse();\n this.hooks(name, suites, fn);\n };\n\n /**\n * Run 'beforeEach' hooks from top level down.\n *\n * @param {String} name\n * @param {Function} fn\n * @private\n */\n Runner.prototype.hookDown = function (name, fn) {\n var suites = [this.suite].concat(this.parents());\n this.hooks(name, suites, fn);\n };\n\n /**\n * Return an array of parent Suites from\n * closest to furthest.\n *\n * @return {Array}\n * @private\n */\n Runner.prototype.parents = function () {\n var suite = this.suite;\n var suites = [];\n while (suite.parent) {\n suite = suite.parent;\n suites.push(suite);\n }\n return suites;\n };\n\n /**\n * Run the current test and callback `fn(err)`.\n *\n * @param {Function} fn\n * @private\n */\n Runner.prototype.runTest = function (fn) {\n if (this._opts.dryRun) return Runner.immediately(fn);\n\n var self = this;\n var test = this.test;\n\n if (!test) {\n return;\n }\n\n if (this.asyncOnly) {\n test.asyncOnly = true;\n }\n this._addEventListener(test, 'error', function (err) {\n self.fail(test, err);\n });\n if (this.allowUncaught) {\n test.allowUncaught = true;\n return test.run(fn);\n }\n try {\n test.run(fn);\n } catch (err) {\n fn(err);\n }\n };\n\n /**\n * Run tests in the given `suite` and invoke the callback `fn()` when complete.\n *\n * @private\n * @param {Suite} suite\n * @param {Function} fn\n */\n Runner.prototype.runTests = function (suite, fn) {\n var self = this;\n var tests = suite.tests.slice();\n var test;\n\n function hookErr(_, errSuite, after) {\n // before/after Each hook for errSuite failed:\n var orig = self.suite;\n\n // for failed 'after each' hook start from errSuite parent,\n // otherwise start from errSuite itself\n self.suite = after ? errSuite.parent : errSuite;\n\n if (self.suite) {\n self.hookUp(HOOK_TYPE_AFTER_EACH, function (err2, errSuite2) {\n self.suite = orig;\n // some hooks may fail even now\n if (err2) {\n return hookErr(err2, errSuite2, true);\n }\n // report error suite\n fn(errSuite);\n });\n } else {\n // there is no need calling other 'after each' hooks\n self.suite = orig;\n fn(errSuite);\n }\n }\n\n function next(err, errSuite) {\n // if we bail after first err\n if (self.failures && suite._bail) {\n tests = [];\n }\n\n if (self._abort) {\n return fn();\n }\n\n if (err) {\n return hookErr(err, errSuite, true);\n }\n\n // next test\n test = tests.shift();\n\n // all done\n if (!test) {\n return fn();\n }\n\n // grep\n var match = self._grep.test(test.fullTitle());\n if (self._invert) {\n match = !match;\n }\n if (!match) {\n // Run immediately only if we have defined a grep. When we\n // define a grep — It can cause maximum callstack error if\n // the grep is doing a large recursive loop by neglecting\n // all tests. The run immediately function also comes with\n // a performance cost. So we don't want to run immediately\n // if we run the whole test suite, because running the whole\n // test suite don't do any immediate recursive loops. Thus,\n // allowing a JS runtime to breathe.\n if (self._grep !== self._defaultGrep) {\n Runner.immediately(next);\n } else {\n next();\n }\n return;\n }\n\n // static skip, no hooks are executed\n if (test.isPending()) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants$1.EVENT_TEST_PENDING, test);\n }\n self.emit(constants$1.EVENT_TEST_END, test);\n return next();\n }\n\n // execute test and hook(s)\n self.emit(constants$1.EVENT_TEST_BEGIN, (self.test = test));\n self.hookDown(HOOK_TYPE_BEFORE_EACH, function (err, errSuite) {\n // conditional skip within beforeEach\n if (test.isPending()) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants$1.EVENT_TEST_PENDING, test);\n }\n self.emit(constants$1.EVENT_TEST_END, test);\n // skip inner afterEach hooks below errSuite level\n var origSuite = self.suite;\n self.suite = errSuite || self.suite;\n return self.hookUp(HOOK_TYPE_AFTER_EACH, function (e, eSuite) {\n self.suite = origSuite;\n next(e, eSuite);\n });\n }\n if (err) {\n return hookErr(err, errSuite, false);\n }\n self.currentRunnable = self.test;\n self.runTest(function (err) {\n test = self.test;\n // conditional skip within it\n if (test.pending) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants$1.EVENT_TEST_PENDING, test);\n }\n self.emit(constants$1.EVENT_TEST_END, test);\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n } else if (err) {\n var retry = test.currentRetry();\n if (retry < test.retries()) {\n var clonedTest = test.clone();\n clonedTest.currentRetry(retry + 1);\n tests.unshift(clonedTest);\n\n self.emit(constants$1.EVENT_TEST_RETRY, test, err);\n\n // Early return + hook trigger so that it doesn't\n // increment the count wrong\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n } else {\n self.fail(test, err);\n }\n self.emit(constants$1.EVENT_TEST_END, test);\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n }\n\n test.state = STATE_PASSED;\n self.emit(constants$1.EVENT_TEST_PASS, test);\n self.emit(constants$1.EVENT_TEST_END, test);\n self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n });\n });\n }\n\n this.next = next;\n this.hookErr = hookErr;\n next();\n };\n\n /**\n * Run the given `suite` and invoke the callback `fn()` when complete.\n *\n * @private\n * @param {Suite} suite\n * @param {Function} fn\n */\n Runner.prototype.runSuite = function (suite, fn) {\n var i = 0;\n var self = this;\n var total = this.grepTotal(suite);\n\n debug('runSuite(): running %s', suite.fullTitle());\n\n if (!total || (self.failures && suite._bail)) {\n debug('runSuite(): bailing');\n return fn();\n }\n\n this.emit(constants$1.EVENT_SUITE_BEGIN, (this.suite = suite));\n\n function next(errSuite) {\n if (errSuite) {\n // current suite failed on a hook from errSuite\n if (errSuite === suite) {\n // if errSuite is current suite\n // continue to the next sibling suite\n return done();\n }\n // errSuite is among the parents of current suite\n // stop execution of errSuite and all sub-suites\n return done(errSuite);\n }\n\n if (self._abort) {\n return done();\n }\n\n var curr = suite.suites[i++];\n if (!curr) {\n return done();\n }\n\n // Avoid grep neglecting large number of tests causing a\n // huge recursive loop and thus a maximum call stack error.\n // See comment in `this.runTests()` for more information.\n if (self._grep !== self._defaultGrep) {\n Runner.immediately(function () {\n self.runSuite(curr, next);\n });\n } else {\n self.runSuite(curr, next);\n }\n }\n\n function done(errSuite) {\n self.suite = suite;\n self.nextSuite = next;\n\n // remove reference to test\n delete self.test;\n\n self.hook(HOOK_TYPE_AFTER_ALL, function () {\n self.emit(constants$1.EVENT_SUITE_END, suite);\n fn(errSuite);\n });\n }\n\n this.nextSuite = next;\n\n this.hook(HOOK_TYPE_BEFORE_ALL, function (err) {\n if (err) {\n return done();\n }\n self.runTests(suite, next);\n });\n };\n\n /**\n * Handle uncaught exceptions within runner.\n *\n * This function is bound to the instance as `Runner#uncaught` at instantiation\n * time. It's intended to be listening on the `Process.uncaughtException` event.\n * In order to not leak EE listeners, we need to ensure no more than a single\n * `uncaughtException` listener exists per `Runner`. The only way to do\n * this--because this function needs the context (and we don't have lambdas)--is\n * to use `Function.prototype.bind`. We need strict equality to unregister and\n * _only_ unregister the _one_ listener we set from the\n * `Process.uncaughtException` event; would be poor form to just remove\n * everything. See {@link Runner#run} for where the event listener is registered\n * and unregistered.\n * @param {Error} err - Some uncaught error\n * @private\n */\n Runner.prototype._uncaught = function (err) {\n // this is defensive to prevent future developers from mis-calling this function.\n // it's more likely that it'd be called with the incorrect context--say, the global\n // `process` object--than it would to be called with a context that is not a \"subclass\"\n // of `Runner`.\n if (!(this instanceof Runner)) {\n throw createFatalError(\n 'Runner#uncaught() called with invalid context',\n this\n );\n }\n if (err instanceof Pending) {\n debug('uncaught(): caught a Pending');\n return;\n }\n // browser does not exit script when throwing in global.onerror()\n if (this.allowUncaught && !utils$1.isBrowser()) {\n debug('uncaught(): bubbling exception due to --allow-uncaught');\n throw err;\n }\n\n if (this.state === constants$1.STATE_STOPPED) {\n debug('uncaught(): throwing after run has completed!');\n throw err;\n }\n\n if (err) {\n debug('uncaught(): got truthy exception %O', err);\n } else {\n debug('uncaught(): undefined/falsy exception');\n err = createInvalidExceptionError(\n 'Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger',\n err\n );\n }\n\n if (!isError(err)) {\n err = thrown2Error(err);\n debug('uncaught(): converted \"error\" %o to Error', err);\n }\n err.uncaught = true;\n\n var runnable = this.currentRunnable;\n\n if (!runnable) {\n runnable = new Runnable$1('Uncaught error outside test suite');\n debug('uncaught(): no current Runnable; created a phony one');\n runnable.parent = this.suite;\n\n if (this.state === constants$1.STATE_RUNNING) {\n debug('uncaught(): failing gracefully');\n this.fail(runnable, err);\n } else {\n // Can't recover from this failure\n debug('uncaught(): test run has not yet started; unrecoverable');\n this.emit(constants$1.EVENT_RUN_BEGIN);\n this.fail(runnable, err);\n this.emit(constants$1.EVENT_RUN_END);\n }\n\n return;\n }\n\n runnable.clearTimeout();\n\n if (runnable.isFailed()) {\n debug('uncaught(): Runnable has already failed');\n // Ignore error if already failed\n return;\n } else if (runnable.isPending()) {\n debug('uncaught(): pending Runnable wound up failing!');\n // report 'pending test' retrospectively as failed\n this.fail(runnable, err, true);\n return;\n }\n\n // we cannot recover gracefully if a Runnable has already passed\n // then fails asynchronously\n if (runnable.isPassed()) {\n debug('uncaught(): Runnable has already passed; bailing gracefully');\n this.fail(runnable, err);\n this.abort();\n } else {\n debug('uncaught(): forcing Runnable to complete with Error');\n return runnable.callback(err);\n }\n };\n\n /**\n * Run the root suite and invoke `fn(failures)`\n * on completion.\n *\n * @public\n * @memberof Runner\n * @param {Function} fn - Callback when finished\n * @param {Object} [opts] - For subclasses\n * @param {string[]} opts.files - Files to run\n * @param {Options} opts.options - command-line options\n * @returns {Runner} Runner instance.\n */\n Runner.prototype.run = function (fn, opts = {}) {\n var rootSuite = this.suite;\n var options = opts.options || {};\n\n debug('run(): got options: %O', options);\n fn = fn || function () {};\n\n const end = () => {\n if (!this.total && this._opts.failZero) this.failures = 1;\n\n debug('run(): root suite completed; emitting %s', constants$1.EVENT_RUN_END);\n this.emit(constants$1.EVENT_RUN_END);\n };\n\n const begin = () => {\n debug('run(): emitting %s', constants$1.EVENT_RUN_BEGIN);\n this.emit(constants$1.EVENT_RUN_BEGIN);\n debug('run(): emitted %s', constants$1.EVENT_RUN_BEGIN);\n\n this.runSuite(rootSuite, end);\n };\n\n const prepare = () => {\n debug('run(): starting');\n // If there is an `only` filter\n if (rootSuite.hasOnly()) {\n rootSuite.filterOnly();\n debug('run(): filtered exclusive Runnables');\n }\n this.state = constants$1.STATE_RUNNING;\n if (this._opts.delay) {\n this.emit(constants$1.EVENT_DELAY_END);\n debug('run(): \"delay\" ended');\n }\n\n return begin();\n };\n\n // references cleanup to avoid memory leaks\n if (this._opts.cleanReferencesAfterRun) {\n this.on(constants$1.EVENT_SUITE_END, suite => {\n suite.cleanReferences();\n });\n }\n\n // callback\n this.on(constants$1.EVENT_RUN_END, function () {\n this.state = constants$1.STATE_STOPPED;\n debug('run(): emitted %s', constants$1.EVENT_RUN_END);\n fn(this.failures);\n });\n\n this._removeEventListener(process, 'uncaughtException', this.uncaught);\n this._removeEventListener(process, 'unhandledRejection', this.unhandled);\n this._addEventListener(process, 'uncaughtException', this.uncaught);\n this._addEventListener(process, 'unhandledRejection', this.unhandled);\n\n if (this._opts.delay) {\n // for reporters, I guess.\n // might be nice to debounce some dots while we wait.\n this.emit(constants$1.EVENT_DELAY_BEGIN, rootSuite);\n rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare);\n debug('run(): waiting for green light due to --delay');\n } else {\n Runner.immediately(prepare);\n }\n\n return this;\n };\n\n /**\n * Toggle partial object linking behavior; used for building object references from\n * unique ID's. Does nothing in serial mode, because the object references already exist.\n * Subclasses can implement this (e.g., `ParallelBufferedRunner`)\n * @abstract\n * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable\n * @returns {Runner}\n * @chainable\n * @public\n * @example\n * // this reporter needs proper object references when run in parallel mode\n * class MyReporter() {\n * constructor(runner) {\n * this.runner.linkPartialObjects(true)\n * .on(EVENT_SUITE_BEGIN, suite => {\n // this Suite may be the same object...\n * })\n * .on(EVENT_TEST_BEGIN, test => {\n * // ...as the `test.parent` property\n * });\n * }\n * }\n */\n Runner.prototype.linkPartialObjects = function (value) {\n return this;\n };\n\n /*\n * Like {@link Runner#run}, but does not accept a callback and returns a `Promise` instead of a `Runner`.\n * This function cannot reject; an `unhandledRejection` event will bubble up to the `process` object instead.\n * @public\n * @memberof Runner\n * @param {Object} [opts] - Options for {@link Runner#run}\n * @returns {Promise} Failure count\n */\n Runner.prototype.runAsync = async function runAsync(opts = {}) {\n return new Promise(resolve => {\n this.run(resolve, opts);\n });\n };\n\n /**\n * Cleanly abort execution.\n *\n * @memberof Runner\n * @public\n * @return {Runner} Runner instance.\n */\n Runner.prototype.abort = function () {\n debug('abort(): aborting');\n this._abort = true;\n\n return this;\n };\n\n /**\n * Returns `true` if Mocha is running in parallel mode. For reporters.\n *\n * Subclasses should return an appropriate value.\n * @public\n * @returns {false}\n */\n Runner.prototype.isParallelMode = function isParallelMode() {\n return false;\n };\n\n /**\n * Configures an alternate reporter for worker processes to use. Subclasses\n * using worker processes should implement this.\n * @public\n * @param {string} path - Absolute path to alternate reporter for worker processes to use\n * @returns {Runner}\n * @throws When in serial mode\n * @chainable\n * @abstract\n */\n Runner.prototype.workerReporter = function () {\n throw createUnsupportedError$1('workerReporter() not supported in serial mode');\n };\n\n /**\n * Filter leaks with the given globals flagged as `ok`.\n *\n * @private\n * @param {Array} ok\n * @param {Array} globals\n * @return {Array}\n */\n function filterLeaks(ok, globals) {\n return globals.filter(function (key) {\n // Firefox and Chrome exposes iframes as index inside the window object\n if (/^\\d+/.test(key)) {\n return false;\n }\n\n // in firefox\n // if runner runs in an iframe, this iframe's window.getInterface method\n // not init at first it is assigned in some seconds\n if (commonjsGlobal.navigator && /^getInterface/.test(key)) {\n return false;\n }\n\n // an iframe could be approached by window[iframeIndex]\n // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak\n if (commonjsGlobal.navigator && /^\\d+/.test(key)) {\n return false;\n }\n\n // Opera and IE expose global variables for HTML element IDs (issue #243)\n if (/^mocha-/.test(key)) {\n return false;\n }\n\n var matched = ok.filter(function (ok) {\n if (~ok.indexOf('*')) {\n return key.indexOf(ok.split('*')[0]) === 0;\n }\n return key === ok;\n });\n return !matched.length && (!commonjsGlobal.navigator || key !== 'onerror');\n });\n }\n\n /**\n * Check if argument is an instance of Error object or a duck-typed equivalent.\n *\n * @private\n * @param {Object} err - object to check\n * @param {string} err.message - error message\n * @returns {boolean}\n */\n function isError(err) {\n return err instanceof Error || (err && typeof err.message === 'string');\n }\n\n /**\n *\n * Converts thrown non-extensible type into proper Error.\n *\n * @private\n * @param {*} thrown - Non-extensible type thrown by code\n * @return {Error}\n */\n function thrown2Error(err) {\n return new Error(\n `the ${utils$1.canonicalType(err)} ${stringify(\n err\n )} was thrown, throw an Error :)`\n );\n }\n\n Runner.constants = constants$1;\n\n /**\n * Node.js' `EventEmitter`\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter}\n */\n\n var runner = Runner;\n\n (function (module, exports) {\n /**\n * @module Base\n */\n /**\n * Module dependencies.\n */\n\n var diff = lib;\n var milliseconds = ms$1;\n var utils = utils$3;\n var supportsColor = require$$18;\n var symbols = browser$1;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n\n const isBrowser = utils.isBrowser();\n\n function getBrowserWindowSize() {\n if ('innerHeight' in commonjsGlobal) {\n return [commonjsGlobal.innerHeight, commonjsGlobal.innerWidth];\n }\n // In a Web Worker, the DOM Window is not available.\n return [640, 480];\n }\n\n /**\n * Expose `Base`.\n */\n\n exports = module.exports = Base;\n\n /**\n * Check if both stdio streams are associated with a tty.\n */\n\n var isatty = isBrowser || (process.stdout.isTTY && process.stderr.isTTY);\n\n /**\n * Save log references to avoid tests interfering (see GH-3604).\n */\n var consoleLog = console.log;\n\n /**\n * Enable coloring by default, except in the browser interface.\n */\n\n exports.useColors =\n !isBrowser &&\n (supportsColor.stdout || process.env.MOCHA_COLORS !== undefined);\n\n /**\n * Inline diffs instead of +/-\n */\n\n exports.inlineDiffs = false;\n\n /**\n * Truncate diffs longer than this value to avoid slow performance\n */\n exports.maxDiffSize = 8192;\n\n /**\n * Default color map.\n */\n\n exports.colors = {\n pass: 90,\n fail: 31,\n 'bright pass': 92,\n 'bright fail': 91,\n 'bright yellow': 93,\n pending: 36,\n suite: 0,\n 'error title': 0,\n 'error message': 31,\n 'error stack': 90,\n checkmark: 32,\n fast: 90,\n medium: 33,\n slow: 31,\n green: 32,\n light: 90,\n 'diff gutter': 90,\n 'diff added': 32,\n 'diff removed': 31,\n 'diff added inline': '30;42',\n 'diff removed inline': '30;41'\n };\n\n /**\n * Default symbol map.\n */\n\n exports.symbols = {\n ok: symbols.success,\n err: symbols.error,\n dot: '.',\n comma: ',',\n bang: '!'\n };\n\n /**\n * Color `str` with the given `type`,\n * allowing colors to be disabled,\n * as well as user-defined color\n * schemes.\n *\n * @private\n * @param {string} type\n * @param {string} str\n * @return {string}\n */\n var color = (exports.color = function (type, str) {\n if (!exports.useColors) {\n return String(str);\n }\n return '\\u001b[' + exports.colors[type] + 'm' + str + '\\u001b[0m';\n });\n\n /**\n * Expose term window size, with some defaults for when stderr is not a tty.\n */\n\n exports.window = {\n width: 75\n };\n\n if (isatty) {\n if (isBrowser) {\n exports.window.width = getBrowserWindowSize()[1];\n } else {\n exports.window.width = process.stdout.getWindowSize(1)[0];\n }\n }\n\n /**\n * Expose some basic cursor interactions that are common among reporters.\n */\n\n exports.cursor = {\n hide: function () {\n isatty && process.stdout.write('\\u001b[?25l');\n },\n\n show: function () {\n isatty && process.stdout.write('\\u001b[?25h');\n },\n\n deleteLine: function () {\n isatty && process.stdout.write('\\u001b[2K');\n },\n\n beginningOfLine: function () {\n isatty && process.stdout.write('\\u001b[0G');\n },\n\n CR: function () {\n if (isatty) {\n exports.cursor.deleteLine();\n exports.cursor.beginningOfLine();\n } else {\n process.stdout.write('\\r');\n }\n }\n };\n\n var showDiff = (exports.showDiff = function (err) {\n return (\n err &&\n err.showDiff !== false &&\n sameType(err.actual, err.expected) &&\n err.expected !== undefined\n );\n });\n\n function stringifyDiffObjs(err) {\n if (!utils.isString(err.actual) || !utils.isString(err.expected)) {\n err.actual = utils.stringify(err.actual);\n err.expected = utils.stringify(err.expected);\n }\n }\n\n /**\n * Returns a diff between 2 strings with coloured ANSI output.\n *\n * @description\n * The diff will be either inline or unified dependent on the value\n * of `Base.inlineDiff`.\n *\n * @param {string} actual\n * @param {string} expected\n * @return {string} Diff\n */\n\n var generateDiff = (exports.generateDiff = function (actual, expected) {\n try {\n var maxLen = exports.maxDiffSize;\n var skipped = 0;\n if (maxLen > 0) {\n skipped = Math.max(actual.length - maxLen, expected.length - maxLen);\n actual = actual.slice(0, maxLen);\n expected = expected.slice(0, maxLen);\n }\n let result = exports.inlineDiffs\n ? inlineDiff(actual, expected)\n : unifiedDiff(actual, expected);\n if (skipped > 0) {\n result = `${result}\\n [mocha] output truncated to ${maxLen} characters, see \"maxDiffSize\" reporter-option\\n`;\n }\n return result;\n } catch (err) {\n var msg =\n '\\n ' +\n color('diff added', '+ expected') +\n ' ' +\n color('diff removed', '- actual: failed to generate Mocha diff') +\n '\\n';\n return msg;\n }\n });\n\n /**\n * Outputs the given `failures` as a list.\n *\n * @public\n * @memberof Mocha.reporters.Base\n * @variation 1\n * @param {Object[]} failures - Each is Test instance with corresponding\n * Error property\n */\n exports.list = function (failures) {\n var multipleErr, multipleTest;\n Base.consoleLog();\n failures.forEach(function (test, i) {\n // format\n var fmt =\n color('error title', ' %s) %s:\\n') +\n color('error message', ' %s') +\n color('error stack', '\\n%s\\n');\n\n // msg\n var msg;\n var err;\n if (test.err && test.err.multiple) {\n if (multipleTest !== test) {\n multipleTest = test;\n multipleErr = [test.err].concat(test.err.multiple);\n }\n err = multipleErr.shift();\n } else {\n err = test.err;\n }\n var message;\n if (typeof err.inspect === 'function') {\n message = err.inspect() + '';\n } else if (err.message && typeof err.message.toString === 'function') {\n message = err.message + '';\n } else {\n message = '';\n }\n var stack = err.stack || message;\n var index = message ? stack.indexOf(message) : -1;\n\n if (index === -1) {\n msg = message;\n } else {\n index += message.length;\n msg = stack.slice(0, index);\n // remove msg from stack\n stack = stack.slice(index + 1);\n }\n\n // uncaught\n if (err.uncaught) {\n msg = 'Uncaught ' + msg;\n }\n // explicitly show diff\n if (!exports.hideDiff && showDiff(err)) {\n stringifyDiffObjs(err);\n fmt =\n color('error title', ' %s) %s:\\n%s') + color('error stack', '\\n%s\\n');\n var match = message.match(/^([^:]+): expected/);\n msg = '\\n ' + color('error message', match ? match[1] : msg);\n\n msg += generateDiff(err.actual, err.expected);\n }\n\n // indent stack trace\n stack = stack.replace(/^/gm, ' ');\n\n // indented test title\n var testTitle = '';\n test.titlePath().forEach(function (str, index) {\n if (index !== 0) {\n testTitle += '\\n ';\n }\n for (var i = 0; i < index; i++) {\n testTitle += ' ';\n }\n testTitle += str;\n });\n\n Base.consoleLog(fmt, i + 1, testTitle, msg, stack);\n });\n };\n\n /**\n * Constructs a new `Base` reporter instance.\n *\n * @description\n * All other reporters generally inherit from this reporter.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Base(runner, options) {\n var failures = (this.failures = []);\n\n if (!runner) {\n throw new TypeError('Missing runner argument');\n }\n this.options = options || {};\n this.runner = runner;\n this.stats = runner.stats; // assigned so Reporters keep a closer reference\n\n var maxDiffSizeOpt =\n this.options.reporterOption && this.options.reporterOption.maxDiffSize;\n if (maxDiffSizeOpt !== undefined && !isNaN(Number(maxDiffSizeOpt))) {\n exports.maxDiffSize = Number(maxDiffSizeOpt);\n }\n\n runner.on(EVENT_TEST_PASS, function (test) {\n if (test.duration > test.slow()) {\n test.speed = 'slow';\n } else if (test.duration > test.slow() / 2) {\n test.speed = 'medium';\n } else {\n test.speed = 'fast';\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function (test, err) {\n if (showDiff(err)) {\n stringifyDiffObjs(err);\n }\n // more than one error per test\n if (test.err && err instanceof Error) {\n test.err.multiple = (test.err.multiple || []).concat(err);\n } else {\n test.err = err;\n }\n failures.push(test);\n });\n }\n\n /**\n * Outputs common epilogue used by many of the bundled reporters.\n *\n * @public\n * @memberof Mocha.reporters\n */\n Base.prototype.epilogue = function () {\n var stats = this.stats;\n var fmt;\n\n Base.consoleLog();\n\n // passes\n fmt =\n color('bright pass', ' ') +\n color('green', ' %d passing') +\n color('light', ' (%s)');\n\n Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration));\n\n // pending\n if (stats.pending) {\n fmt = color('pending', ' ') + color('pending', ' %d pending');\n\n Base.consoleLog(fmt, stats.pending);\n }\n\n // failures\n if (stats.failures) {\n fmt = color('fail', ' %d failing');\n\n Base.consoleLog(fmt, stats.failures);\n\n Base.list(this.failures);\n Base.consoleLog();\n }\n\n Base.consoleLog();\n };\n\n /**\n * Pads the given `str` to `len`.\n *\n * @private\n * @param {string} str\n * @param {string} len\n * @return {string}\n */\n function pad(str, len) {\n str = String(str);\n return Array(len - str.length + 1).join(' ') + str;\n }\n\n /**\n * Returns inline diff between 2 strings with coloured ANSI output.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} Diff\n */\n function inlineDiff(actual, expected) {\n var msg = errorDiff(actual, expected);\n\n // linenos\n var lines = msg.split('\\n');\n if (lines.length > 4) {\n var width = String(lines.length).length;\n msg = lines\n .map(function (str, i) {\n return pad(++i, width) + ' |' + ' ' + str;\n })\n .join('\\n');\n }\n\n // legend\n msg =\n '\\n' +\n color('diff removed inline', 'actual') +\n ' ' +\n color('diff added inline', 'expected') +\n '\\n\\n' +\n msg +\n '\\n';\n\n // indent\n msg = msg.replace(/^/gm, ' ');\n return msg;\n }\n\n /**\n * Returns unified diff between two strings with coloured ANSI output.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} The diff.\n */\n function unifiedDiff(actual, expected) {\n var indent = ' ';\n function cleanUp(line) {\n if (line[0] === '+') {\n return indent + colorLines('diff added', line);\n }\n if (line[0] === '-') {\n return indent + colorLines('diff removed', line);\n }\n if (line.match(/@@/)) {\n return '--';\n }\n if (line.match(/\\\\ No newline/)) {\n return null;\n }\n return indent + line;\n }\n function notBlank(line) {\n return typeof line !== 'undefined' && line !== null;\n }\n var msg = diff.createPatch('string', actual, expected);\n var lines = msg.split('\\n').splice(5);\n return (\n '\\n ' +\n colorLines('diff added', '+ expected') +\n ' ' +\n colorLines('diff removed', '- actual') +\n '\\n\\n' +\n lines.map(cleanUp).filter(notBlank).join('\\n')\n );\n }\n\n /**\n * Returns character diff for `err`.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} the diff\n */\n function errorDiff(actual, expected) {\n return diff\n .diffWordsWithSpace(actual, expected)\n .map(function (str) {\n if (str.added) {\n return colorLines('diff added inline', str.value);\n }\n if (str.removed) {\n return colorLines('diff removed inline', str.value);\n }\n return str.value;\n })\n .join('');\n }\n\n /**\n * Colors lines for `str`, using the color `name`.\n *\n * @private\n * @param {string} name\n * @param {string} str\n * @return {string}\n */\n function colorLines(name, str) {\n return str\n .split('\\n')\n .map(function (str) {\n return color(name, str);\n })\n .join('\\n');\n }\n\n /**\n * Object#toString reference.\n */\n var objToString = Object.prototype.toString;\n\n /**\n * Checks that a / b have the same type.\n *\n * @private\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\n function sameType(a, b) {\n return objToString.call(a) === objToString.call(b);\n }\n\n Base.consoleLog = consoleLog;\n\n Base.abstract = true;\n }(base$1, base$1.exports));\n\n var dot = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Dot\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var inherits = utils$3.inherits;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n\n /**\n * Expose `Dot`.\n */\n\n module.exports = Dot;\n\n /**\n * Constructs a new `Dot` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Dot(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var n = -1;\n\n runner.on(EVENT_RUN_BEGIN, function () {\n process.stdout.write('\\n');\n });\n\n runner.on(EVENT_TEST_PENDING, function () {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n process.stdout.write(Base.color('pending', Base.symbols.comma));\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n if (test.speed === 'slow') {\n process.stdout.write(Base.color('bright yellow', Base.symbols.dot));\n } else {\n process.stdout.write(Base.color(test.speed, Base.symbols.dot));\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function () {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n process.stdout.write(Base.color('fail', Base.symbols.bang));\n });\n\n runner.once(EVENT_RUN_END, function () {\n process.stdout.write('\\n');\n self.epilogue();\n });\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(Dot, Base);\n\n Dot.description = 'dot matrix representation';\n }(dot));\n\n var doc = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Doc\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var utils = utils$3;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\n var EVENT_SUITE_END = constants.EVENT_SUITE_END;\n\n /**\n * Expose `Doc`.\n */\n\n module.exports = Doc;\n\n /**\n * Constructs a new `Doc` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Doc(runner, options) {\n Base.call(this, runner, options);\n\n var indents = 2;\n\n function indent() {\n return Array(indents).join(' ');\n }\n\n runner.on(EVENT_SUITE_BEGIN, function (suite) {\n if (suite.root) {\n return;\n }\n ++indents;\n Base.consoleLog('%s
      ', indent());\n ++indents;\n Base.consoleLog('%s

      %s

      ', indent(), utils.escape(suite.title));\n Base.consoleLog('%s
      ', indent());\n });\n\n runner.on(EVENT_SUITE_END, function (suite) {\n if (suite.root) {\n return;\n }\n Base.consoleLog('%s
      ', indent());\n --indents;\n Base.consoleLog('%s
      ', indent());\n --indents;\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n Base.consoleLog('%s
      %s
      ', indent(), utils.escape(test.title));\n Base.consoleLog('%s
      %s
      ', indent(), utils.escape(test.file));\n var code = utils.escape(utils.clean(test.body));\n Base.consoleLog('%s
      %s
      ', indent(), code);\n });\n\n runner.on(EVENT_TEST_FAIL, function (test, err) {\n Base.consoleLog(\n '%s
      %s
      ',\n indent(),\n utils.escape(test.title)\n );\n Base.consoleLog(\n '%s
      %s
      ',\n indent(),\n utils.escape(test.file)\n );\n var code = utils.escape(utils.clean(test.body));\n Base.consoleLog(\n '%s
      %s
      ',\n indent(),\n code\n );\n Base.consoleLog(\n '%s
      %s
      ',\n indent(),\n utils.escape(err)\n );\n });\n }\n\n Doc.description = 'HTML documentation';\n }(doc));\n\n var tap = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module TAP\n */\n /**\n * Module dependencies.\n */\n\n var util = require$$0$1;\n var Base = base$1.exports;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var EVENT_TEST_END = constants.EVENT_TEST_END;\n var inherits = utils$3.inherits;\n var sprintf = util.format;\n\n /**\n * Expose `TAP`.\n */\n\n module.exports = TAP;\n\n /**\n * Constructs a new `TAP` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function TAP(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var n = 1;\n\n var tapVersion = '12';\n if (options && options.reporterOptions) {\n if (options.reporterOptions.tapVersion) {\n tapVersion = options.reporterOptions.tapVersion.toString();\n }\n }\n\n this._producer = createProducer(tapVersion);\n\n runner.once(EVENT_RUN_BEGIN, function () {\n self._producer.writeVersion();\n });\n\n runner.on(EVENT_TEST_END, function () {\n ++n;\n });\n\n runner.on(EVENT_TEST_PENDING, function (test) {\n self._producer.writePending(n, test);\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n self._producer.writePass(n, test);\n });\n\n runner.on(EVENT_TEST_FAIL, function (test, err) {\n self._producer.writeFail(n, test, err);\n });\n\n runner.once(EVENT_RUN_END, function () {\n self._producer.writeEpilogue(runner.stats);\n });\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(TAP, Base);\n\n /**\n * Returns a TAP-safe title of `test`.\n *\n * @private\n * @param {Test} test - Test instance.\n * @return {String} title with any hash character removed\n */\n function title(test) {\n return test.fullTitle().replace(/#/g, '');\n }\n\n /**\n * Writes newline-terminated formatted string to reporter output stream.\n *\n * @private\n * @param {string} format - `printf`-like format string\n * @param {...*} [varArgs] - Format string arguments\n */\n function println(format, varArgs) {\n var vargs = Array.from(arguments);\n vargs[0] += '\\n';\n process.stdout.write(sprintf.apply(null, vargs));\n }\n\n /**\n * Returns a `tapVersion`-appropriate TAP producer instance, if possible.\n *\n * @private\n * @param {string} tapVersion - Version of TAP specification to produce.\n * @returns {TAPProducer} specification-appropriate instance\n * @throws {Error} if specification version has no associated producer.\n */\n function createProducer(tapVersion) {\n var producers = {\n 12: new TAP12Producer(),\n 13: new TAP13Producer()\n };\n var producer = producers[tapVersion];\n\n if (!producer) {\n throw new Error(\n 'invalid or unsupported TAP version: ' + JSON.stringify(tapVersion)\n );\n }\n\n return producer;\n }\n\n /**\n * @summary\n * Constructs a new TAPProducer.\n *\n * @description\n * Only to be used as an abstract base class.\n *\n * @private\n * @constructor\n */\n function TAPProducer() {}\n\n /**\n * Writes the TAP version to reporter output stream.\n *\n * @abstract\n */\n TAPProducer.prototype.writeVersion = function () {};\n\n /**\n * Writes the plan to reporter output stream.\n *\n * @abstract\n * @param {number} ntests - Number of tests that are planned to run.\n */\n TAPProducer.prototype.writePlan = function (ntests) {\n println('%d..%d', 1, ntests);\n };\n\n /**\n * Writes that test passed to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that passed.\n * @param {Test} test - Instance containing test information.\n */\n TAPProducer.prototype.writePass = function (n, test) {\n println('ok %d %s', n, title(test));\n };\n\n /**\n * Writes that test was skipped to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that was skipped.\n * @param {Test} test - Instance containing test information.\n */\n TAPProducer.prototype.writePending = function (n, test) {\n println('ok %d %s # SKIP -', n, title(test));\n };\n\n /**\n * Writes that test failed to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that failed.\n * @param {Test} test - Instance containing test information.\n * @param {Error} err - Reason the test failed.\n */\n TAPProducer.prototype.writeFail = function (n, test, err) {\n println('not ok %d %s', n, title(test));\n };\n\n /**\n * Writes the summary epilogue to reporter output stream.\n *\n * @abstract\n * @param {Object} stats - Object containing run statistics.\n */\n TAPProducer.prototype.writeEpilogue = function (stats) {\n // :TBD: Why is this not counting pending tests?\n println('# tests ' + (stats.passes + stats.failures));\n println('# pass ' + stats.passes);\n // :TBD: Why are we not showing pending results?\n println('# fail ' + stats.failures);\n this.writePlan(stats.passes + stats.failures + stats.pending);\n };\n\n /**\n * @summary\n * Constructs a new TAP12Producer.\n *\n * @description\n * Produces output conforming to the TAP12 specification.\n *\n * @private\n * @constructor\n * @extends TAPProducer\n * @see {@link https://testanything.org/tap-specification.html|Specification}\n */\n function TAP12Producer() {\n /**\n * Writes that test failed to reporter output stream, with error formatting.\n * @override\n */\n this.writeFail = function (n, test, err) {\n TAPProducer.prototype.writeFail.call(this, n, test, err);\n if (err.message) {\n println(err.message.replace(/^/gm, ' '));\n }\n if (err.stack) {\n println(err.stack.replace(/^/gm, ' '));\n }\n };\n }\n\n /**\n * Inherit from `TAPProducer.prototype`.\n */\n inherits(TAP12Producer, TAPProducer);\n\n /**\n * @summary\n * Constructs a new TAP13Producer.\n *\n * @description\n * Produces output conforming to the TAP13 specification.\n *\n * @private\n * @constructor\n * @extends TAPProducer\n * @see {@link https://testanything.org/tap-version-13-specification.html|Specification}\n */\n function TAP13Producer() {\n /**\n * Writes the TAP version to reporter output stream.\n * @override\n */\n this.writeVersion = function () {\n println('TAP version 13');\n };\n\n /**\n * Writes that test failed to reporter output stream, with error formatting.\n * @override\n */\n this.writeFail = function (n, test, err) {\n TAPProducer.prototype.writeFail.call(this, n, test, err);\n var emitYamlBlock = err.message != null || err.stack != null;\n if (emitYamlBlock) {\n println(indent(1) + '---');\n if (err.message) {\n println(indent(2) + 'message: |-');\n println(err.message.replace(/^/gm, indent(3)));\n }\n if (err.stack) {\n println(indent(2) + 'stack: |-');\n println(err.stack.replace(/^/gm, indent(3)));\n }\n println(indent(1) + '...');\n }\n };\n\n function indent(level) {\n return Array(level + 1).join(' ');\n }\n }\n\n /**\n * Inherit from `TAPProducer.prototype`.\n */\n inherits(TAP13Producer, TAPProducer);\n\n TAP.description = 'TAP-compatible output';\n }(tap));\n\n var json = {exports: {}};\n\n var _polyfillNode_fs = {};\n\n var _polyfillNode_fs$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': _polyfillNode_fs\n });\n\n var require$$2 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_fs$1);\n\n (function (module, exports) {\n /**\n * @module JSON\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var fs = require$$2;\n var path = require$$1;\n const createUnsupportedError = errors$2.createUnsupportedError;\n const utils = utils$3;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_TEST_END = constants.EVENT_TEST_END;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n\n /**\n * Expose `JSON`.\n */\n\n module.exports = JSONReporter;\n\n /**\n * Constructs a new `JSON` reporter instance.\n *\n * @public\n * @class JSON\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function JSONReporter(runner, options = {}) {\n Base.call(this, runner, options);\n\n var self = this;\n var tests = [];\n var pending = [];\n var failures = [];\n var passes = [];\n var output;\n\n if (options.reporterOption && options.reporterOption.output) {\n if (utils.isBrowser()) {\n throw createUnsupportedError('file output not supported in browser');\n }\n output = options.reporterOption.output;\n }\n\n runner.on(EVENT_TEST_END, function (test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n passes.push(test);\n });\n\n runner.on(EVENT_TEST_FAIL, function (test) {\n failures.push(test);\n });\n\n runner.on(EVENT_TEST_PENDING, function (test) {\n pending.push(test);\n });\n\n runner.once(EVENT_RUN_END, function () {\n var obj = {\n stats: self.stats,\n tests: tests.map(clean),\n pending: pending.map(clean),\n failures: failures.map(clean),\n passes: passes.map(clean)\n };\n\n runner.testResults = obj;\n\n var json = JSON.stringify(obj, null, 2);\n if (output) {\n try {\n fs.mkdirSync(path.dirname(output), {recursive: true});\n fs.writeFileSync(output, json);\n } catch (err) {\n console.error(\n `${Base.symbols.err} [mocha] writing output to \"${output}\" failed: ${err.message}\\n`\n );\n process.stdout.write(json);\n }\n } else {\n process.stdout.write(json);\n }\n });\n }\n\n /**\n * Return a plain-object representation of `test`\n * free of cyclic properties etc.\n *\n * @private\n * @param {Object} test\n * @return {Object}\n */\n function clean(test) {\n var err = test.err || {};\n if (err instanceof Error) {\n err = errorJSON(err);\n }\n\n return {\n title: test.title,\n fullTitle: test.fullTitle(),\n file: test.file,\n duration: test.duration,\n currentRetry: test.currentRetry(),\n speed: test.speed,\n err: cleanCycles(err)\n };\n }\n\n /**\n * Replaces any circular references inside `obj` with '[object Object]'\n *\n * @private\n * @param {Object} obj\n * @return {Object}\n */\n function cleanCycles(obj) {\n var cache = [];\n return JSON.parse(\n JSON.stringify(obj, function (key, value) {\n if (typeof value === 'object' && value !== null) {\n if (cache.indexOf(value) !== -1) {\n // Instead of going in a circle, we'll print [object Object]\n return '' + value;\n }\n cache.push(value);\n }\n\n return value;\n })\n );\n }\n\n /**\n * Transform an Error object into a JSON object.\n *\n * @private\n * @param {Error} err\n * @return {Object}\n */\n function errorJSON(err) {\n var res = {};\n Object.getOwnPropertyNames(err).forEach(function (key) {\n res[key] = err[key];\n }, err);\n return res;\n }\n\n JSONReporter.description = 'single JSON object';\n }(json));\n\n var html = {exports: {}};\n\n /**\n @module browser/Progress\n */\n\n /**\n * Expose `Progress`.\n */\n\n var progress$1 = Progress;\n\n /**\n * Initialize a new `Progress` indicator.\n */\n function Progress() {\n this.percent = 0;\n this.size(0);\n this.fontSize(11);\n this.font('helvetica, arial, sans-serif');\n }\n\n /**\n * Set progress size to `size`.\n *\n * @public\n * @param {number} size\n * @return {Progress} Progress instance.\n */\n Progress.prototype.size = function (size) {\n this._size = size;\n return this;\n };\n\n /**\n * Set text to `text`.\n *\n * @public\n * @param {string} text\n * @return {Progress} Progress instance.\n */\n Progress.prototype.text = function (text) {\n this._text = text;\n return this;\n };\n\n /**\n * Set font size to `size`.\n *\n * @public\n * @param {number} size\n * @return {Progress} Progress instance.\n */\n Progress.prototype.fontSize = function (size) {\n this._fontSize = size;\n return this;\n };\n\n /**\n * Set font to `family`.\n *\n * @param {string} family\n * @return {Progress} Progress instance.\n */\n Progress.prototype.font = function (family) {\n this._font = family;\n return this;\n };\n\n /**\n * Update percentage to `n`.\n *\n * @param {number} n\n * @return {Progress} Progress instance.\n */\n Progress.prototype.update = function (n) {\n this.percent = n;\n return this;\n };\n\n /**\n * Draw on `ctx`.\n *\n * @param {CanvasRenderingContext2d} ctx\n * @return {Progress} Progress instance.\n */\n Progress.prototype.draw = function (ctx) {\n try {\n var darkMatcher = window.matchMedia('(prefers-color-scheme: dark)');\n var isDarkMode = !!darkMatcher.matches;\n var lightColors = {\n outerCircle: '#9f9f9f',\n innerCircle: '#eee',\n text: '#000'\n };\n var darkColors = {\n outerCircle: '#888',\n innerCircle: '#444',\n text: '#fff'\n };\n var colors = isDarkMode ? darkColors : lightColors;\n\n var percent = Math.min(this.percent, 100);\n var size = this._size;\n var half = size / 2;\n var x = half;\n var y = half;\n var rad = half - 1;\n var fontSize = this._fontSize;\n\n ctx.font = fontSize + 'px ' + this._font;\n\n var angle = Math.PI * 2 * (percent / 100);\n ctx.clearRect(0, 0, size, size);\n\n // outer circle\n ctx.strokeStyle = colors.outerCircle;\n ctx.beginPath();\n ctx.arc(x, y, rad, 0, angle, false);\n ctx.stroke();\n\n // inner circle\n ctx.strokeStyle = colors.innerCircle;\n ctx.beginPath();\n ctx.arc(x, y, rad - 1, 0, angle, true);\n ctx.stroke();\n\n // text\n var text = this._text || (percent | 0) + '%';\n var w = ctx.measureText(text).width;\n\n ctx.fillStyle = colors.text;\n ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1);\n } catch (ignore) {\n // don't fail if we can't render progress\n }\n return this;\n };\n\n (function (module, exports) {\n\n /* eslint-env browser */\n /**\n * @module HTML\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var utils = utils$3;\n var Progress = progress$1;\n var escapeRe = escapeStringRegexp;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\n var EVENT_SUITE_END = constants.EVENT_SUITE_END;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var escape = utils.escape;\n\n /**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n\n var Date = commonjsGlobal.Date;\n\n /**\n * Expose `HTML`.\n */\n\n module.exports = HTML;\n\n /**\n * Stats template.\n */\n\n var statsTemplate =\n '';\n\n var playIcon = '‣';\n\n /**\n * Constructs a new `HTML` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function HTML(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var stats = this.stats;\n var stat = fragment(statsTemplate);\n var items = stat.getElementsByTagName('li');\n var passes = items[1].getElementsByTagName('em')[0];\n var passesLink = items[1].getElementsByTagName('a')[0];\n var failures = items[2].getElementsByTagName('em')[0];\n var failuresLink = items[2].getElementsByTagName('a')[0];\n var duration = items[3].getElementsByTagName('em')[0];\n var canvas = stat.getElementsByTagName('canvas')[0];\n var report = fragment('
        ');\n var stack = [report];\n var progress;\n var ctx;\n var root = document.getElementById('mocha');\n\n if (canvas.getContext) {\n var ratio = window.devicePixelRatio || 1;\n canvas.style.width = canvas.width;\n canvas.style.height = canvas.height;\n canvas.width *= ratio;\n canvas.height *= ratio;\n ctx = canvas.getContext('2d');\n ctx.scale(ratio, ratio);\n progress = new Progress();\n }\n\n if (!root) {\n return error('#mocha div missing, add it to your document');\n }\n\n // pass toggle\n on(passesLink, 'click', function (evt) {\n evt.preventDefault();\n unhide();\n var name = /pass/.test(report.className) ? '' : ' pass';\n report.className = report.className.replace(/fail|pass/g, '') + name;\n if (report.className.trim()) {\n hideSuitesWithout('test pass');\n }\n });\n\n // failure toggle\n on(failuresLink, 'click', function (evt) {\n evt.preventDefault();\n unhide();\n var name = /fail/.test(report.className) ? '' : ' fail';\n report.className = report.className.replace(/fail|pass/g, '') + name;\n if (report.className.trim()) {\n hideSuitesWithout('test fail');\n }\n });\n\n root.appendChild(stat);\n root.appendChild(report);\n\n if (progress) {\n progress.size(40);\n }\n\n runner.on(EVENT_SUITE_BEGIN, function (suite) {\n if (suite.root) {\n return;\n }\n\n // suite\n var url = self.suiteURL(suite);\n var el = fragment(\n '
      • %s

      • ',\n url,\n escape(suite.title)\n );\n\n // container\n stack[0].appendChild(el);\n stack.unshift(document.createElement('ul'));\n el.appendChild(stack[0]);\n });\n\n runner.on(EVENT_SUITE_END, function (suite) {\n if (suite.root) {\n updateStats();\n return;\n }\n stack.shift();\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n var url = self.testURL(test);\n var markup =\n '
      • %e%ems ' +\n '' +\n playIcon +\n '

      • ';\n var el = fragment(markup, test.speed, test.title, test.duration, url);\n self.addCodeToggle(el, test.body);\n appendToStack(el);\n updateStats();\n });\n\n runner.on(EVENT_TEST_FAIL, function (test) {\n var el = fragment(\n '
      • %e ' +\n playIcon +\n '

      • ',\n test.title,\n self.testURL(test)\n );\n var stackString; // Note: Includes leading newline\n var message = test.err.toString();\n\n // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we\n // check for the result of the stringifying.\n if (message === '[object Error]') {\n message = test.err.message;\n }\n\n if (test.err.stack) {\n var indexOfMessage = test.err.stack.indexOf(test.err.message);\n if (indexOfMessage === -1) {\n stackString = test.err.stack;\n } else {\n stackString = test.err.stack.slice(\n test.err.message.length + indexOfMessage\n );\n }\n } else if (test.err.sourceURL && test.err.line !== undefined) {\n // Safari doesn't give you a stack. Let's at least provide a source line.\n stackString = '\\n(' + test.err.sourceURL + ':' + test.err.line + ')';\n }\n\n stackString = stackString || '';\n\n if (test.err.htmlMessage && stackString) {\n el.appendChild(\n fragment(\n '
        %s\\n
        %e
        ',\n test.err.htmlMessage,\n stackString\n )\n );\n } else if (test.err.htmlMessage) {\n el.appendChild(\n fragment('
        %s
        ', test.err.htmlMessage)\n );\n } else {\n el.appendChild(\n fragment('
        %e%e
        ', message, stackString)\n );\n }\n\n self.addCodeToggle(el, test.body);\n appendToStack(el);\n updateStats();\n });\n\n runner.on(EVENT_TEST_PENDING, function (test) {\n var el = fragment(\n '
      • %e

      • ',\n test.title\n );\n appendToStack(el);\n updateStats();\n });\n\n function appendToStack(el) {\n // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack.\n if (stack[0]) {\n stack[0].appendChild(el);\n }\n }\n\n function updateStats() {\n // TODO: add to stats\n var percent = ((stats.tests / runner.total) * 100) | 0;\n if (progress) {\n progress.update(percent).draw(ctx);\n }\n\n // update stats\n var ms = new Date() - stats.start;\n text(passes, stats.passes);\n text(failures, stats.failures);\n text(duration, (ms / 1000).toFixed(2));\n }\n }\n\n /**\n * Makes a URL, preserving querystring (\"search\") parameters.\n *\n * @param {string} s\n * @return {string} A new URL.\n */\n function makeUrl(s) {\n var search = window.location.search;\n\n // Remove previous grep query parameter if present\n if (search) {\n search = search.replace(/[?&]grep=[^&\\s]*/g, '').replace(/^&/, '?');\n }\n\n return (\n window.location.pathname +\n (search ? search + '&' : '?') +\n 'grep=' +\n encodeURIComponent(escapeRe(s))\n );\n }\n\n /**\n * Provide suite URL.\n *\n * @param {Object} [suite]\n */\n HTML.prototype.suiteURL = function (suite) {\n return makeUrl(suite.fullTitle());\n };\n\n /**\n * Provide test URL.\n *\n * @param {Object} [test]\n */\n HTML.prototype.testURL = function (test) {\n return makeUrl(test.fullTitle());\n };\n\n /**\n * Adds code toggle functionality for the provided test's list element.\n *\n * @param {HTMLLIElement} el\n * @param {string} contents\n */\n HTML.prototype.addCodeToggle = function (el, contents) {\n var h2 = el.getElementsByTagName('h2')[0];\n\n on(h2, 'click', function () {\n pre.style.display = pre.style.display === 'none' ? 'block' : 'none';\n });\n\n var pre = fragment('
        %e
        ', utils.clean(contents));\n el.appendChild(pre);\n pre.style.display = 'none';\n };\n\n /**\n * Display error `msg`.\n *\n * @param {string} msg\n */\n function error(msg) {\n document.body.appendChild(fragment('
        %s
        ', msg));\n }\n\n /**\n * Return a DOM fragment from `html`.\n *\n * @param {string} html\n */\n function fragment(html) {\n var args = arguments;\n var div = document.createElement('div');\n var i = 1;\n\n div.innerHTML = html.replace(/%([se])/g, function (_, type) {\n switch (type) {\n case 's':\n return String(args[i++]);\n case 'e':\n return escape(args[i++]);\n // no default\n }\n });\n\n return div.firstChild;\n }\n\n /**\n * Check for suites that do not have elements\n * with `classname`, and hide them.\n *\n * @param {text} classname\n */\n function hideSuitesWithout(classname) {\n var suites = document.getElementsByClassName('suite');\n for (var i = 0; i < suites.length; i++) {\n var els = suites[i].getElementsByClassName(classname);\n if (!els.length) {\n suites[i].className += ' hidden';\n }\n }\n }\n\n /**\n * Unhide .hidden suites.\n */\n function unhide() {\n var els = document.getElementsByClassName('suite hidden');\n while (els.length > 0) {\n els[0].className = els[0].className.replace('suite hidden', 'suite');\n }\n }\n\n /**\n * Set an element's text contents.\n *\n * @param {HTMLElement} el\n * @param {string} contents\n */\n function text(el, contents) {\n if (el.textContent) {\n el.textContent = contents;\n } else {\n el.innerText = contents;\n }\n }\n\n /**\n * Listen on `event` with callback `fn`.\n */\n function on(el, event, fn) {\n if (el.addEventListener) {\n el.addEventListener(event, fn, false);\n } else {\n el.attachEvent('on' + event, fn);\n }\n }\n\n HTML.browserOnly = true;\n }(html));\n\n var list = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module List\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var inherits = utils$3.inherits;\n var constants = runner.constants;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var color = Base.color;\n var cursor = Base.cursor;\n\n /**\n * Expose `List`.\n */\n\n module.exports = List;\n\n /**\n * Constructs a new `List` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function List(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var n = 0;\n\n runner.on(EVENT_RUN_BEGIN, function () {\n Base.consoleLog();\n });\n\n runner.on(EVENT_TEST_BEGIN, function (test) {\n process.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));\n });\n\n runner.on(EVENT_TEST_PENDING, function (test) {\n var fmt = color('checkmark', ' -') + color('pending', ' %s');\n Base.consoleLog(fmt, test.fullTitle());\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n var fmt =\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s: ') +\n color(test.speed, '%dms');\n cursor.CR();\n Base.consoleLog(fmt, test.fullTitle(), test.duration);\n });\n\n runner.on(EVENT_TEST_FAIL, function (test) {\n cursor.CR();\n Base.consoleLog(color('fail', ' %d) %s'), ++n, test.fullTitle());\n });\n\n runner.once(EVENT_RUN_END, self.epilogue.bind(self));\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(List, Base);\n\n List.description = 'like \"spec\" reporter but flat';\n }(list));\n\n var min = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Min\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var inherits = utils$3.inherits;\n var constants = runner.constants;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n\n /**\n * Expose `Min`.\n */\n\n module.exports = Min;\n\n /**\n * Constructs a new `Min` reporter instance.\n *\n * @description\n * This minimal test reporter is best used with '--watch'.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Min(runner, options) {\n Base.call(this, runner, options);\n\n runner.on(EVENT_RUN_BEGIN, function () {\n // clear screen\n process.stdout.write('\\u001b[2J');\n // set cursor position\n process.stdout.write('\\u001b[1;3H');\n });\n\n runner.once(EVENT_RUN_END, this.epilogue.bind(this));\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(Min, Base);\n\n Min.description = 'essentially just a summary';\n }(min));\n\n var spec = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Spec\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var constants = runner.constants;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\n var EVENT_SUITE_END = constants.EVENT_SUITE_END;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var inherits = utils$3.inherits;\n var color = Base.color;\n\n /**\n * Expose `Spec`.\n */\n\n module.exports = Spec;\n\n /**\n * Constructs a new `Spec` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Spec(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var indents = 0;\n var n = 0;\n\n function indent() {\n return Array(indents).join(' ');\n }\n\n runner.on(EVENT_RUN_BEGIN, function () {\n Base.consoleLog();\n });\n\n runner.on(EVENT_SUITE_BEGIN, function (suite) {\n ++indents;\n Base.consoleLog(color('suite', '%s%s'), indent(), suite.title);\n });\n\n runner.on(EVENT_SUITE_END, function () {\n --indents;\n if (indents === 1) {\n Base.consoleLog();\n }\n });\n\n runner.on(EVENT_TEST_PENDING, function (test) {\n var fmt = indent() + color('pending', ' - %s');\n Base.consoleLog(fmt, test.title);\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n var fmt;\n if (test.speed === 'fast') {\n fmt =\n indent() +\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s');\n Base.consoleLog(fmt, test.title);\n } else {\n fmt =\n indent() +\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s') +\n color(test.speed, ' (%dms)');\n Base.consoleLog(fmt, test.title, test.duration);\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function (test) {\n Base.consoleLog(indent() + color('fail', ' %d) %s'), ++n, test.title);\n });\n\n runner.once(EVENT_RUN_END, self.epilogue.bind(self));\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(Spec, Base);\n\n Spec.description = 'hierarchical & verbose [default]';\n }(spec));\n\n var nyan = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Nyan\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var constants = runner.constants;\n var inherits = utils$3.inherits;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n\n /**\n * Expose `Dot`.\n */\n\n module.exports = NyanCat;\n\n /**\n * Constructs a new `Nyan` reporter instance.\n *\n * @public\n * @class Nyan\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function NyanCat(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var nyanCatWidth = (this.nyanCatWidth = 11);\n\n this.colorIndex = 0;\n this.numberOfLines = 4;\n this.rainbowColors = self.generateColors();\n this.scoreboardWidth = 5;\n this.tick = 0;\n this.trajectories = [[], [], [], []];\n this.trajectoryWidthMax = width - nyanCatWidth;\n\n runner.on(EVENT_RUN_BEGIN, function () {\n Base.cursor.hide();\n self.draw();\n });\n\n runner.on(EVENT_TEST_PENDING, function () {\n self.draw();\n });\n\n runner.on(EVENT_TEST_PASS, function () {\n self.draw();\n });\n\n runner.on(EVENT_TEST_FAIL, function () {\n self.draw();\n });\n\n runner.once(EVENT_RUN_END, function () {\n Base.cursor.show();\n for (var i = 0; i < self.numberOfLines; i++) {\n write('\\n');\n }\n self.epilogue();\n });\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(NyanCat, Base);\n\n /**\n * Draw the nyan cat\n *\n * @private\n */\n\n NyanCat.prototype.draw = function () {\n this.appendRainbow();\n this.drawScoreboard();\n this.drawRainbow();\n this.drawNyanCat();\n this.tick = !this.tick;\n };\n\n /**\n * Draw the \"scoreboard\" showing the number\n * of passes, failures and pending tests.\n *\n * @private\n */\n\n NyanCat.prototype.drawScoreboard = function () {\n var stats = this.stats;\n\n function draw(type, n) {\n write(' ');\n write(Base.color(type, n));\n write('\\n');\n }\n\n draw('green', stats.passes);\n draw('fail', stats.failures);\n draw('pending', stats.pending);\n write('\\n');\n\n this.cursorUp(this.numberOfLines);\n };\n\n /**\n * Append the rainbow.\n *\n * @private\n */\n\n NyanCat.prototype.appendRainbow = function () {\n var segment = this.tick ? '_' : '-';\n var rainbowified = this.rainbowify(segment);\n\n for (var index = 0; index < this.numberOfLines; index++) {\n var trajectory = this.trajectories[index];\n if (trajectory.length >= this.trajectoryWidthMax) {\n trajectory.shift();\n }\n trajectory.push(rainbowified);\n }\n };\n\n /**\n * Draw the rainbow.\n *\n * @private\n */\n\n NyanCat.prototype.drawRainbow = function () {\n var self = this;\n\n this.trajectories.forEach(function (line) {\n write('\\u001b[' + self.scoreboardWidth + 'C');\n write(line.join(''));\n write('\\n');\n });\n\n this.cursorUp(this.numberOfLines);\n };\n\n /**\n * Draw the nyan cat\n *\n * @private\n */\n NyanCat.prototype.drawNyanCat = function () {\n var self = this;\n var startWidth = this.scoreboardWidth + this.trajectories[0].length;\n var dist = '\\u001b[' + startWidth + 'C';\n var padding = '';\n\n write(dist);\n write('_,------,');\n write('\\n');\n\n write(dist);\n padding = self.tick ? ' ' : ' ';\n write('_|' + padding + '/\\\\_/\\\\ ');\n write('\\n');\n\n write(dist);\n padding = self.tick ? '_' : '__';\n var tail = self.tick ? '~' : '^';\n write(tail + '|' + padding + this.face() + ' ');\n write('\\n');\n\n write(dist);\n padding = self.tick ? ' ' : ' ';\n write(padding + '\"\" \"\" ');\n write('\\n');\n\n this.cursorUp(this.numberOfLines);\n };\n\n /**\n * Draw nyan cat face.\n *\n * @private\n * @return {string}\n */\n\n NyanCat.prototype.face = function () {\n var stats = this.stats;\n if (stats.failures) {\n return '( x .x)';\n } else if (stats.pending) {\n return '( o .o)';\n } else if (stats.passes) {\n return '( ^ .^)';\n }\n return '( - .-)';\n };\n\n /**\n * Move cursor up `n`.\n *\n * @private\n * @param {number} n\n */\n\n NyanCat.prototype.cursorUp = function (n) {\n write('\\u001b[' + n + 'A');\n };\n\n /**\n * Move cursor down `n`.\n *\n * @private\n * @param {number} n\n */\n\n NyanCat.prototype.cursorDown = function (n) {\n write('\\u001b[' + n + 'B');\n };\n\n /**\n * Generate rainbow colors.\n *\n * @private\n * @return {Array}\n */\n NyanCat.prototype.generateColors = function () {\n var colors = [];\n\n for (var i = 0; i < 6 * 7; i++) {\n var pi3 = Math.floor(Math.PI / 3);\n var n = i * (1.0 / 6);\n var r = Math.floor(3 * Math.sin(n) + 3);\n var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3);\n var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3);\n colors.push(36 * r + 6 * g + b + 16);\n }\n\n return colors;\n };\n\n /**\n * Apply rainbow to the given `str`.\n *\n * @private\n * @param {string} str\n * @return {string}\n */\n NyanCat.prototype.rainbowify = function (str) {\n if (!Base.useColors) {\n return str;\n }\n var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];\n this.colorIndex += 1;\n return '\\u001b[38;5;' + color + 'm' + str + '\\u001b[0m';\n };\n\n /**\n * Stdout helper.\n *\n * @param {string} string A message to write to stdout.\n */\n function write(string) {\n process.stdout.write(string);\n }\n\n NyanCat.description = '\"nyan cat\"';\n }(nyan));\n\n var xunit = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module XUnit\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var utils = utils$3;\n var fs = require$$2;\n var path = require$$1;\n var errors = errors$2;\n var createUnsupportedError = errors.createUnsupportedError;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var STATE_FAILED = runnable.constants.STATE_FAILED;\n var inherits = utils.inherits;\n var escape = utils.escape;\n\n /**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n var Date = commonjsGlobal.Date;\n\n /**\n * Expose `XUnit`.\n */\n\n module.exports = XUnit;\n\n /**\n * Constructs a new `XUnit` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function XUnit(runner, options) {\n Base.call(this, runner, options);\n\n var stats = this.stats;\n var tests = [];\n var self = this;\n\n // the name of the test suite, as it will appear in the resulting XML file\n var suiteName;\n\n // the default name of the test suite if none is provided\n var DEFAULT_SUITE_NAME = 'Mocha Tests';\n\n if (options && options.reporterOptions) {\n if (options.reporterOptions.output) {\n if (!fs.createWriteStream) {\n throw createUnsupportedError('file output not supported in browser');\n }\n\n fs.mkdirSync(path.dirname(options.reporterOptions.output), {\n recursive: true\n });\n self.fileStream = fs.createWriteStream(options.reporterOptions.output);\n }\n\n // get the suite name from the reporter options (if provided)\n suiteName = options.reporterOptions.suiteName;\n }\n\n // fall back to the default suite name\n suiteName = suiteName || DEFAULT_SUITE_NAME;\n\n runner.on(EVENT_TEST_PENDING, function (test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_FAIL, function (test) {\n tests.push(test);\n });\n\n runner.once(EVENT_RUN_END, function () {\n self.write(\n tag(\n 'testsuite',\n {\n name: suiteName,\n tests: stats.tests,\n failures: 0,\n errors: stats.failures,\n skipped: stats.tests - stats.failures - stats.passes,\n timestamp: new Date().toUTCString(),\n time: stats.duration / 1000 || 0\n },\n false\n )\n );\n\n tests.forEach(function (t) {\n self.test(t);\n });\n\n self.write('');\n });\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(XUnit, Base);\n\n /**\n * Override done to close the stream (if it's a file).\n *\n * @param failures\n * @param {Function} fn\n */\n XUnit.prototype.done = function (failures, fn) {\n if (this.fileStream) {\n this.fileStream.end(function () {\n fn(failures);\n });\n } else {\n fn(failures);\n }\n };\n\n /**\n * Write out the given line.\n *\n * @param {string} line\n */\n XUnit.prototype.write = function (line) {\n if (this.fileStream) {\n this.fileStream.write(line + '\\n');\n } else if (typeof process === 'object' && process.stdout) {\n process.stdout.write(line + '\\n');\n } else {\n Base.consoleLog(line);\n }\n };\n\n /**\n * Output tag for the given `test.`\n *\n * @param {Test} test\n */\n XUnit.prototype.test = function (test) {\n Base.useColors = false;\n\n var attrs = {\n classname: test.parent.fullTitle(),\n name: test.title,\n time: test.duration / 1000 || 0\n };\n\n if (test.state === STATE_FAILED) {\n var err = test.err;\n var diff =\n !Base.hideDiff && Base.showDiff(err)\n ? '\\n' + Base.generateDiff(err.actual, err.expected)\n : '';\n this.write(\n tag(\n 'testcase',\n attrs,\n false,\n tag(\n 'failure',\n {},\n false,\n escape(err.message) + escape(diff) + '\\n' + escape(err.stack)\n )\n )\n );\n } else if (test.isPending()) {\n this.write(tag('testcase', attrs, false, tag('skipped', {}, true)));\n } else {\n this.write(tag('testcase', attrs, true));\n }\n };\n\n /**\n * HTML tag helper.\n *\n * @param name\n * @param attrs\n * @param close\n * @param content\n * @return {string}\n */\n function tag(name, attrs, close, content) {\n var end = close ? '/>' : '>';\n var pairs = [];\n var tag;\n\n for (var key in attrs) {\n if (Object.prototype.hasOwnProperty.call(attrs, key)) {\n pairs.push(key + '=\"' + escape(attrs[key]) + '\"');\n }\n }\n\n tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end;\n if (content) {\n tag += content + '' + '\\n';\n buf += title(suite.title) + '\\n';\n });\n\n runner.on(EVENT_SUITE_END, function () {\n --level;\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n var code = utils.clean(test.body);\n buf += test.title + '.\\n';\n buf += '\\n```js\\n';\n buf += code + '\\n';\n buf += '```\\n\\n';\n });\n\n runner.once(EVENT_RUN_END, function () {\n process.stdout.write('# TOC\\n');\n process.stdout.write(generateTOC(runner.suite));\n process.stdout.write(buf);\n });\n }\n\n Markdown.description = 'GitHub Flavored Markdown';\n }(markdown));\n\n var progress = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Progress\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var constants = runner.constants;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_TEST_END = constants.EVENT_TEST_END;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var inherits = utils$3.inherits;\n var color = Base.color;\n var cursor = Base.cursor;\n\n /**\n * Expose `Progress`.\n */\n\n module.exports = Progress;\n\n /**\n * General progress bar color.\n */\n\n Base.colors.progress = 90;\n\n /**\n * Constructs a new `Progress` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Progress(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.5) | 0;\n var total = runner.total;\n var complete = 0;\n var lastN = -1;\n\n // default chars\n options = options || {};\n var reporterOptions = options.reporterOptions || {};\n\n options.open = reporterOptions.open || '[';\n options.complete = reporterOptions.complete || '▬';\n options.incomplete = reporterOptions.incomplete || Base.symbols.dot;\n options.close = reporterOptions.close || ']';\n options.verbose = reporterOptions.verbose || false;\n\n // tests started\n runner.on(EVENT_RUN_BEGIN, function () {\n process.stdout.write('\\n');\n cursor.hide();\n });\n\n // tests complete\n runner.on(EVENT_TEST_END, function () {\n complete++;\n\n var percent = complete / total;\n var n = (width * percent) | 0;\n var i = width - n;\n\n if (n === lastN && !options.verbose) {\n // Don't re-render the line if it hasn't changed\n return;\n }\n lastN = n;\n\n cursor.CR();\n process.stdout.write('\\u001b[J');\n process.stdout.write(color('progress', ' ' + options.open));\n process.stdout.write(Array(n).join(options.complete));\n process.stdout.write(Array(i).join(options.incomplete));\n process.stdout.write(color('progress', options.close));\n if (options.verbose) {\n process.stdout.write(color('progress', ' ' + complete + ' of ' + total));\n }\n });\n\n // tests are complete, output some stats\n // and the failures if any\n runner.once(EVENT_RUN_END, function () {\n cursor.show();\n process.stdout.write('\\n');\n self.epilogue();\n });\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(Progress, Base);\n\n Progress.description = 'a progress bar';\n }(progress));\n\n var landing = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module Landing\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var inherits = utils$3.inherits;\n var constants = runner.constants;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_TEST_END = constants.EVENT_TEST_END;\n var STATE_FAILED = runnable.constants.STATE_FAILED;\n\n var cursor = Base.cursor;\n var color = Base.color;\n\n /**\n * Expose `Landing`.\n */\n\n module.exports = Landing;\n\n /**\n * Airplane color.\n */\n\n Base.colors.plane = 0;\n\n /**\n * Airplane crash color.\n */\n\n Base.colors['plane crash'] = 31;\n\n /**\n * Runway color.\n */\n\n Base.colors.runway = 90;\n\n /**\n * Constructs a new `Landing` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function Landing(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var stream = process.stdout;\n\n var plane = color('plane', '✈');\n var crashed = -1;\n var n = 0;\n var total = 0;\n\n function runway() {\n var buf = Array(width).join('-');\n return ' ' + color('runway', buf);\n }\n\n runner.on(EVENT_RUN_BEGIN, function () {\n stream.write('\\n\\n\\n ');\n cursor.hide();\n });\n\n runner.on(EVENT_TEST_END, function (test) {\n // check if the plane crashed\n var col = crashed === -1 ? ((width * ++n) / ++total) | 0 : crashed;\n // show the crash\n if (test.state === STATE_FAILED) {\n plane = color('plane crash', '✈');\n crashed = col;\n }\n\n // render landing strip\n stream.write('\\u001b[' + (width + 1) + 'D\\u001b[2A');\n stream.write(runway());\n stream.write('\\n ');\n stream.write(color('runway', Array(col).join('⋅')));\n stream.write(plane);\n stream.write(color('runway', Array(width - col).join('⋅') + '\\n'));\n stream.write(runway());\n stream.write('\\u001b[0m');\n });\n\n runner.once(EVENT_RUN_END, function () {\n cursor.show();\n process.stdout.write('\\n');\n self.epilogue();\n });\n\n // if cursor is hidden when we ctrl-C, then it will remain hidden unless...\n process.once('SIGINT', function () {\n cursor.show();\n nextTick$1(function () {\n process.kill(process.pid, 'SIGINT');\n });\n });\n }\n\n /**\n * Inherit from `Base.prototype`.\n */\n inherits(Landing, Base);\n\n Landing.description = 'Unicode landing strip';\n }(landing));\n\n var jsonStream = {exports: {}};\n\n (function (module, exports) {\n /**\n * @module JSONStream\n */\n /**\n * Module dependencies.\n */\n\n var Base = base$1.exports;\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n\n /**\n * Expose `JSONStream`.\n */\n\n module.exports = JSONStream;\n\n /**\n * Constructs a new `JSONStream` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\n function JSONStream(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var total = runner.total;\n\n runner.once(EVENT_RUN_BEGIN, function () {\n writeEvent(['start', {total}]);\n });\n\n runner.on(EVENT_TEST_PASS, function (test) {\n writeEvent(['pass', clean(test)]);\n });\n\n runner.on(EVENT_TEST_FAIL, function (test, err) {\n test = clean(test);\n test.err = err.message;\n test.stack = err.stack || null;\n writeEvent(['fail', test]);\n });\n\n runner.once(EVENT_RUN_END, function () {\n writeEvent(['end', self.stats]);\n });\n }\n\n /**\n * Mocha event to be written to the output stream.\n * @typedef {Array} JSONStream~MochaEvent\n */\n\n /**\n * Writes Mocha event to reporter output stream.\n *\n * @private\n * @param {JSONStream~MochaEvent} event - Mocha event to be output.\n */\n function writeEvent(event) {\n process.stdout.write(JSON.stringify(event) + '\\n');\n }\n\n /**\n * Returns an object literal representation of `test`\n * free of cyclic properties, etc.\n *\n * @private\n * @param {Test} test - Instance used as data source.\n * @return {Object} object containing pared-down test instance data\n */\n function clean(test) {\n return {\n title: test.title,\n fullTitle: test.fullTitle(),\n file: test.file,\n duration: test.duration,\n currentRetry: test.currentRetry(),\n speed: test.speed\n };\n }\n\n JSONStream.description = 'newline delimited JSON events';\n }(jsonStream));\n\n (function (exports) {\n\n // Alias exports to a their normalized format Mocha#reporter to prevent a need\n // for dynamic (try/catch) requires, which Browserify doesn't handle.\n exports.Base = exports.base = base$1.exports;\n exports.Dot = exports.dot = dot.exports;\n exports.Doc = exports.doc = doc.exports;\n exports.TAP = exports.tap = tap.exports;\n exports.JSON = exports.json = json.exports;\n exports.HTML = exports.html = html.exports;\n exports.List = exports.list = list.exports;\n exports.Min = exports.min = min.exports;\n exports.Spec = exports.spec = spec.exports;\n exports.Nyan = exports.nyan = nyan.exports;\n exports.XUnit = exports.xunit = xunit.exports;\n exports.Markdown = exports.markdown = markdown.exports;\n exports.Progress = exports.progress = progress.exports;\n exports.Landing = exports.landing = landing.exports;\n exports.JSONStream = exports['json-stream'] = jsonStream.exports;\n }(reporters));\n\n var diff = true;\n var extension = [\n \t\"js\",\n \t\"cjs\",\n \t\"mjs\"\n ];\n var reporter = \"spec\";\n var slow = 75;\n var timeout = 2000;\n var ui = \"bdd\";\n var require$$4 = {\n \tdiff: diff,\n \textension: extension,\n \t\"package\": \"./package.json\",\n \treporter: reporter,\n \tslow: slow,\n \ttimeout: timeout,\n \tui: ui,\n \t\"watch-ignore\": [\n \t\"node_modules\",\n \t\".git\"\n ]\n };\n\n /**\n * Provides a factory function for a {@link StatsCollector} object.\n * @module\n */\n\n var constants = runner.constants;\n var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\n var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n var EVENT_RUN_END = constants.EVENT_RUN_END;\n var EVENT_TEST_END = constants.EVENT_TEST_END;\n\n /**\n * Test statistics collector.\n *\n * @public\n * @typedef {Object} StatsCollector\n * @property {number} suites - integer count of suites run.\n * @property {number} tests - integer count of tests run.\n * @property {number} passes - integer count of passing tests.\n * @property {number} pending - integer count of pending tests.\n * @property {number} failures - integer count of failed tests.\n * @property {Date} start - time when testing began.\n * @property {Date} end - time when testing concluded.\n * @property {number} duration - number of msecs that testing took.\n */\n\n var Date$2 = commonjsGlobal.Date;\n\n /**\n * Provides stats such as test duration, number of tests passed / failed etc., by listening for events emitted by `runner`.\n *\n * @private\n * @param {Runner} runner - Runner instance\n * @throws {TypeError} If falsy `runner`\n */\n function createStatsCollector(runner) {\n /**\n * @type StatsCollector\n */\n var stats = {\n suites: 0,\n tests: 0,\n passes: 0,\n pending: 0,\n failures: 0\n };\n\n if (!runner) {\n throw new TypeError('Missing runner argument');\n }\n\n runner.stats = stats;\n\n runner.once(EVENT_RUN_BEGIN, function () {\n stats.start = new Date$2();\n });\n runner.on(EVENT_SUITE_BEGIN, function (suite) {\n suite.root || stats.suites++;\n });\n runner.on(EVENT_TEST_PASS, function () {\n stats.passes++;\n });\n runner.on(EVENT_TEST_FAIL, function () {\n stats.failures++;\n });\n runner.on(EVENT_TEST_PENDING, function () {\n stats.pending++;\n });\n runner.on(EVENT_TEST_END, function () {\n stats.tests++;\n });\n runner.once(EVENT_RUN_END, function () {\n stats.end = new Date$2();\n stats.duration = stats.end - stats.start;\n });\n }\n\n var statsCollector = createStatsCollector;\n\n var interfaces = {};\n\n var bdd = {exports: {}};\n\n var Runnable = runnable;\n var utils = utils$3;\n var errors$1 = errors$2;\n var createInvalidArgumentTypeError = errors$1.createInvalidArgumentTypeError;\n var isString = utils.isString;\n\n const {MOCHA_ID_PROP_NAME} = utils.constants;\n\n var test = Test$4;\n\n /**\n * Initialize a new `Test` with the given `title` and callback `fn`.\n *\n * @public\n * @class\n * @extends Runnable\n * @param {String} title - Test title (required)\n * @param {Function} [fn] - Test callback. If omitted, the Test is considered \"pending\"\n */\n function Test$4(title, fn) {\n if (!isString(title)) {\n throw createInvalidArgumentTypeError(\n 'Test argument \"title\" should be a string. Received type \"' +\n typeof title +\n '\"',\n 'title',\n 'string'\n );\n }\n this.type = 'test';\n Runnable.call(this, title, fn);\n this.reset();\n }\n\n /**\n * Inherit from `Runnable.prototype`.\n */\n utils.inherits(Test$4, Runnable);\n\n /**\n * Resets the state initially or for a next run.\n */\n Test$4.prototype.reset = function () {\n Runnable.prototype.reset.call(this);\n this.pending = !this.fn;\n delete this.state;\n };\n\n /**\n * Set or get retried test\n *\n * @private\n */\n Test$4.prototype.retriedTest = function (n) {\n if (!arguments.length) {\n return this._retriedTest;\n }\n this._retriedTest = n;\n };\n\n /**\n * Add test to the list of tests marked `only`.\n *\n * @private\n */\n Test$4.prototype.markOnly = function () {\n this.parent.appendOnlyTest(this);\n };\n\n Test$4.prototype.clone = function () {\n var test = new Test$4(this.title, this.fn);\n test.timeout(this.timeout());\n test.slow(this.slow());\n test.retries(this.retries());\n test.currentRetry(this.currentRetry());\n test.retriedTest(this.retriedTest() || this);\n test.globals(this.globals());\n test.parent = this.parent;\n test.file = this.file;\n test.ctx = this.ctx;\n return test;\n };\n\n /**\n * Returns an minimal object suitable for transmission over IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\n Test$4.prototype.serialize = function serialize() {\n return {\n $$currentRetry: this._currentRetry,\n $$fullTitle: this.fullTitle(),\n $$isPending: Boolean(this.pending),\n $$retriedTest: this._retriedTest || null,\n $$slow: this._slow,\n $$titlePath: this.titlePath(),\n body: this.body,\n duration: this.duration,\n err: this.err,\n parent: {\n $$fullTitle: this.parent.fullTitle(),\n [MOCHA_ID_PROP_NAME]: this.parent.id\n },\n speed: this.speed,\n state: this.state,\n title: this.title,\n type: this.type,\n file: this.file,\n [MOCHA_ID_PROP_NAME]: this.id\n };\n };\n\n /**\n @module interfaces/common\n */\n\n var Suite$1 = suite.exports;\n var errors = errors$2;\n var createMissingArgumentError = errors.createMissingArgumentError;\n var createUnsupportedError = errors.createUnsupportedError;\n var createForbiddenExclusivityError = errors.createForbiddenExclusivityError;\n\n /**\n * Functions common to more than one interface.\n *\n * @private\n * @param {Suite[]} suites\n * @param {Context} context\n * @param {Mocha} mocha\n * @return {Object} An object containing common functions.\n */\n var common = function (suites, context, mocha) {\n /**\n * Check if the suite should be tested.\n *\n * @private\n * @param {Suite} suite - suite to check\n * @returns {boolean}\n */\n function shouldBeTested(suite) {\n return (\n !mocha.options.grep ||\n (mocha.options.grep &&\n mocha.options.grep.test(suite.fullTitle()) &&\n !mocha.options.invert)\n );\n }\n\n return {\n /**\n * This is only present if flag --delay is passed into Mocha. It triggers\n * root suite execution.\n *\n * @param {Suite} suite The root suite.\n * @return {Function} A function which runs the root suite\n */\n runWithSuite: function runWithSuite(suite) {\n return function run() {\n suite.run();\n };\n },\n\n /**\n * Execute before running tests.\n *\n * @param {string} name\n * @param {Function} fn\n */\n before: function (name, fn) {\n suites[0].beforeAll(name, fn);\n },\n\n /**\n * Execute after running tests.\n *\n * @param {string} name\n * @param {Function} fn\n */\n after: function (name, fn) {\n suites[0].afterAll(name, fn);\n },\n\n /**\n * Execute before each test case.\n *\n * @param {string} name\n * @param {Function} fn\n */\n beforeEach: function (name, fn) {\n suites[0].beforeEach(name, fn);\n },\n\n /**\n * Execute after each test case.\n *\n * @param {string} name\n * @param {Function} fn\n */\n afterEach: function (name, fn) {\n suites[0].afterEach(name, fn);\n },\n\n suite: {\n /**\n * Create an exclusive Suite; convenience function\n * See docstring for create() below.\n *\n * @param {Object} opts\n * @returns {Suite}\n */\n only: function only(opts) {\n if (mocha.options.forbidOnly) {\n throw createForbiddenExclusivityError(mocha);\n }\n opts.isOnly = true;\n return this.create(opts);\n },\n\n /**\n * Create a Suite, but skip it; convenience function\n * See docstring for create() below.\n *\n * @param {Object} opts\n * @returns {Suite}\n */\n skip: function skip(opts) {\n opts.pending = true;\n return this.create(opts);\n },\n\n /**\n * Creates a suite.\n *\n * @param {Object} opts Options\n * @param {string} opts.title Title of Suite\n * @param {Function} [opts.fn] Suite Function (not always applicable)\n * @param {boolean} [opts.pending] Is Suite pending?\n * @param {string} [opts.file] Filepath where this Suite resides\n * @param {boolean} [opts.isOnly] Is Suite exclusive?\n * @returns {Suite}\n */\n create: function create(opts) {\n var suite = Suite$1.create(suites[0], opts.title);\n suite.pending = Boolean(opts.pending);\n suite.file = opts.file;\n suites.unshift(suite);\n if (opts.isOnly) {\n suite.markOnly();\n }\n if (\n suite.pending &&\n mocha.options.forbidPending &&\n shouldBeTested(suite)\n ) {\n throw createUnsupportedError('Pending test forbidden');\n }\n if (typeof opts.fn === 'function') {\n opts.fn.call(suite);\n suites.shift();\n } else if (typeof opts.fn === 'undefined' && !suite.pending) {\n throw createMissingArgumentError(\n 'Suite \"' +\n suite.fullTitle() +\n '\" was defined but no callback was supplied. ' +\n 'Supply a callback or explicitly skip the suite.',\n 'callback',\n 'function'\n );\n } else if (!opts.fn && suite.pending) {\n suites.shift();\n }\n\n return suite;\n }\n },\n\n test: {\n /**\n * Exclusive test-case.\n *\n * @param {Object} mocha\n * @param {Function} test\n * @returns {*}\n */\n only: function (mocha, test) {\n if (mocha.options.forbidOnly) {\n throw createForbiddenExclusivityError(mocha);\n }\n test.markOnly();\n return test;\n },\n\n /**\n * Pending test case.\n *\n * @param {string} title\n */\n skip: function (title) {\n context.test(title);\n }\n }\n };\n };\n\n var Test$3 = test;\n var EVENT_FILE_PRE_REQUIRE$2 =\n suite.exports.constants.EVENT_FILE_PRE_REQUIRE;\n\n /**\n * BDD-style interface:\n *\n * describe('Array', function() {\n * describe('#indexOf()', function() {\n * it('should return -1 when not present', function() {\n * // ...\n * });\n *\n * it('should return the index when present', function() {\n * // ...\n * });\n * });\n * });\n *\n * @param {Suite} suite Root suite.\n */\n bdd.exports = function bddInterface(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE$2, function (context, file, mocha) {\n var common$1 = common(suites, context, mocha);\n\n context.before = common$1.before;\n context.after = common$1.after;\n context.beforeEach = common$1.beforeEach;\n context.afterEach = common$1.afterEach;\n context.run = mocha.options.delay && common$1.runWithSuite(suite);\n /**\n * Describe a \"suite\" with the given `title`\n * and callback `fn` containing nested suites\n * and/or tests.\n */\n\n context.describe = context.context = function (title, fn) {\n return common$1.suite.create({\n title,\n file,\n fn\n });\n };\n\n /**\n * Pending describe.\n */\n\n context.xdescribe =\n context.xcontext =\n context.describe.skip =\n function (title, fn) {\n return common$1.suite.skip({\n title,\n file,\n fn\n });\n };\n\n /**\n * Exclusive suite.\n */\n\n context.describe.only = function (title, fn) {\n return common$1.suite.only({\n title,\n file,\n fn\n });\n };\n\n /**\n * Describe a specification or test-case\n * with the given `title` and callback `fn`\n * acting as a thunk.\n */\n\n context.it = context.specify = function (title, fn) {\n var suite = suites[0];\n if (suite.isPending()) {\n fn = null;\n }\n var test = new Test$3(title, fn);\n test.file = file;\n suite.addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.it.only = function (title, fn) {\n return common$1.test.only(mocha, context.it(title, fn));\n };\n\n /**\n * Pending test case.\n */\n\n context.xit =\n context.xspecify =\n context.it.skip =\n function (title) {\n return context.it(title);\n };\n });\n };\n\n bdd.exports.description = 'BDD or RSpec style [default]';\n\n var tdd = {exports: {}};\n\n var Test$2 = test;\n var EVENT_FILE_PRE_REQUIRE$1 =\n suite.exports.constants.EVENT_FILE_PRE_REQUIRE;\n\n /**\n * TDD-style interface:\n *\n * suite('Array', function() {\n * suite('#indexOf()', function() {\n * suiteSetup(function() {\n *\n * });\n *\n * test('should return -1 when not present', function() {\n *\n * });\n *\n * test('should return the index when present', function() {\n *\n * });\n *\n * suiteTeardown(function() {\n *\n * });\n * });\n * });\n *\n * @param {Suite} suite Root suite.\n */\n tdd.exports = function (suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE$1, function (context, file, mocha) {\n var common$1 = common(suites, context, mocha);\n\n context.setup = common$1.beforeEach;\n context.teardown = common$1.afterEach;\n context.suiteSetup = common$1.before;\n context.suiteTeardown = common$1.after;\n context.run = mocha.options.delay && common$1.runWithSuite(suite);\n\n /**\n * Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites and/or tests.\n */\n context.suite = function (title, fn) {\n return common$1.suite.create({\n title,\n file,\n fn\n });\n };\n\n /**\n * Pending suite.\n */\n context.suite.skip = function (title, fn) {\n return common$1.suite.skip({\n title,\n file,\n fn\n });\n };\n\n /**\n * Exclusive test-case.\n */\n context.suite.only = function (title, fn) {\n return common$1.suite.only({\n title,\n file,\n fn\n });\n };\n\n /**\n * Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk.\n */\n context.test = function (title, fn) {\n var suite = suites[0];\n if (suite.isPending()) {\n fn = null;\n }\n var test = new Test$2(title, fn);\n test.file = file;\n suite.addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.test.only = function (title, fn) {\n return common$1.test.only(mocha, context.test(title, fn));\n };\n\n context.test.skip = common$1.test.skip;\n });\n };\n\n tdd.exports.description =\n 'traditional \"suite\"/\"test\" instead of BDD\\'s \"describe\"/\"it\"';\n\n var qunit = {exports: {}};\n\n var Test$1 = test;\n var EVENT_FILE_PRE_REQUIRE =\n suite.exports.constants.EVENT_FILE_PRE_REQUIRE;\n\n /**\n * QUnit-style interface:\n *\n * suite('Array');\n *\n * test('#length', function() {\n * var arr = [1,2,3];\n * ok(arr.length == 3);\n * });\n *\n * test('#indexOf()', function() {\n * var arr = [1,2,3];\n * ok(arr.indexOf(1) == 0);\n * ok(arr.indexOf(2) == 1);\n * ok(arr.indexOf(3) == 2);\n * });\n *\n * suite('String');\n *\n * test('#length', function() {\n * ok('foo'.length == 3);\n * });\n *\n * @param {Suite} suite Root suite.\n */\n qunit.exports = function qUnitInterface(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function (context, file, mocha) {\n var common$1 = common(suites, context, mocha);\n\n context.before = common$1.before;\n context.after = common$1.after;\n context.beforeEach = common$1.beforeEach;\n context.afterEach = common$1.afterEach;\n context.run = mocha.options.delay && common$1.runWithSuite(suite);\n /**\n * Describe a \"suite\" with the given `title`.\n */\n\n context.suite = function (title) {\n if (suites.length > 1) {\n suites.shift();\n }\n return common$1.suite.create({\n title,\n file,\n fn: false\n });\n };\n\n /**\n * Exclusive Suite.\n */\n\n context.suite.only = function (title) {\n if (suites.length > 1) {\n suites.shift();\n }\n return common$1.suite.only({\n title,\n file,\n fn: false\n });\n };\n\n /**\n * Describe a specification or test-case\n * with the given `title` and callback `fn`\n * acting as a thunk.\n */\n\n context.test = function (title, fn) {\n var test = new Test$1(title, fn);\n test.file = file;\n suites[0].addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.test.only = function (title, fn) {\n return common$1.test.only(mocha, context.test(title, fn));\n };\n\n context.test.skip = common$1.test.skip;\n });\n };\n\n qunit.exports.description = 'QUnit style';\n\n var exports$1 = {exports: {}};\n\n var Suite = suite.exports;\n var Test = test;\n\n /**\n * Exports-style (as Node.js module) interface:\n *\n * exports.Array = {\n * '#indexOf()': {\n * 'should return -1 when the value is not present': function() {\n *\n * },\n *\n * 'should return the correct index when the value is present': function() {\n *\n * }\n * }\n * };\n *\n * @param {Suite} suite Root suite.\n */\n exports$1.exports = function (suite) {\n var suites = [suite];\n\n suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit);\n\n function visit(obj, file) {\n var suite;\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n var fn = obj[key];\n switch (key) {\n case 'before':\n suites[0].beforeAll(fn);\n break;\n case 'after':\n suites[0].afterAll(fn);\n break;\n case 'beforeEach':\n suites[0].beforeEach(fn);\n break;\n case 'afterEach':\n suites[0].afterEach(fn);\n break;\n default:\n var test = new Test(key, fn);\n test.file = file;\n suites[0].addTest(test);\n }\n } else {\n suite = Suite.create(suites[0], key);\n suites.unshift(suite);\n visit(obj[key], file);\n suites.shift();\n }\n }\n }\n };\n\n exports$1.exports.description = 'Node.js module (\"exports\") style';\n\n interfaces.bdd = bdd.exports;\n interfaces.tdd = tdd.exports;\n interfaces.qunit = qunit.exports;\n interfaces.exports = exports$1.exports;\n\n /**\n * @module Context\n */\n /**\n * Expose `Context`.\n */\n\n var context = Context;\n\n /**\n * Initialize a new `Context`.\n *\n * @private\n */\n function Context() {}\n\n /**\n * Set or get the context `Runnable` to `runnable`.\n *\n * @private\n * @param {Runnable} runnable\n * @return {Context} context\n */\n Context.prototype.runnable = function (runnable) {\n if (!arguments.length) {\n return this._runnable;\n }\n this.test = this._runnable = runnable;\n return this;\n };\n\n /**\n * Set or get test timeout `ms`.\n *\n * @private\n * @param {number} ms\n * @return {Context} self\n */\n Context.prototype.timeout = function (ms) {\n if (!arguments.length) {\n return this.runnable().timeout();\n }\n this.runnable().timeout(ms);\n return this;\n };\n\n /**\n * Set or get test slowness threshold `ms`.\n *\n * @private\n * @param {number} ms\n * @return {Context} self\n */\n Context.prototype.slow = function (ms) {\n if (!arguments.length) {\n return this.runnable().slow();\n }\n this.runnable().slow(ms);\n return this;\n };\n\n /**\n * Mark a test as skipped.\n *\n * @private\n * @throws Pending\n */\n Context.prototype.skip = function () {\n this.runnable().skip();\n };\n\n /**\n * Set or get a number of allowed retries on failed tests\n *\n * @private\n * @param {number} n\n * @return {Context} self\n */\n Context.prototype.retries = function (n) {\n if (!arguments.length) {\n return this.runnable().retries();\n }\n this.runnable().retries(n);\n return this;\n };\n\n var name = \"mocha\";\n var version = \"10.2.0\";\n var homepage = \"https://mochajs.org/\";\n var notifyLogo = \"https://ibin.co/4QuRuGjXvl36.png\";\n var require$$17 = {\n \tname: name,\n \tversion: version,\n \thomepage: homepage,\n \tnotifyLogo: notifyLogo\n };\n\n (function (module, exports) {\n\n /*!\n * mocha\n * Copyright(c) 2011 TJ Holowaychuk \n * MIT Licensed\n */\n\n var escapeRe = escapeStringRegexp;\n var path = require$$1;\n var builtinReporters = reporters;\n var utils = utils$3;\n var mocharc = require$$4;\n var Suite = suite.exports;\n var esmUtils = require$$18;\n var createStatsCollector = statsCollector;\n const {\n createInvalidReporterError,\n createInvalidInterfaceError,\n createMochaInstanceAlreadyDisposedError,\n createMochaInstanceAlreadyRunningError,\n createUnsupportedError\n } = errors$2;\n const {EVENT_FILE_PRE_REQUIRE, EVENT_FILE_POST_REQUIRE, EVENT_FILE_REQUIRE} =\n Suite.constants;\n var debug = browser.exports('mocha:mocha');\n\n exports = module.exports = Mocha;\n\n /**\n * A Mocha instance is a finite state machine.\n * These are the states it can be in.\n * @private\n */\n var mochaStates = utils.defineConstants({\n /**\n * Initial state of the mocha instance\n * @private\n */\n INIT: 'init',\n /**\n * Mocha instance is running tests\n * @private\n */\n RUNNING: 'running',\n /**\n * Mocha instance is done running tests and references to test functions and hooks are cleaned.\n * You can reset this state by unloading the test files.\n * @private\n */\n REFERENCES_CLEANED: 'referencesCleaned',\n /**\n * Mocha instance is disposed and can no longer be used.\n * @private\n */\n DISPOSED: 'disposed'\n });\n\n /**\n * To require local UIs and reporters when running in node.\n */\n\n if (!utils.isBrowser() && typeof module.paths !== 'undefined') {\n var cwd = utils.cwd();\n module.paths.push(cwd, path.join(cwd, 'node_modules'));\n }\n\n /**\n * Expose internals.\n * @private\n */\n\n exports.utils = utils;\n exports.interfaces = interfaces;\n /**\n * @public\n * @memberof Mocha\n */\n exports.reporters = builtinReporters;\n exports.Runnable = runnable;\n exports.Context = context;\n /**\n *\n * @memberof Mocha\n */\n exports.Runner = runner;\n exports.Suite = Suite;\n exports.Hook = hook;\n exports.Test = test;\n\n let currentContext;\n exports.afterEach = function (...args) {\n return (currentContext.afterEach || currentContext.teardown).apply(\n this,\n args\n );\n };\n exports.after = function (...args) {\n return (currentContext.after || currentContext.suiteTeardown).apply(\n this,\n args\n );\n };\n exports.beforeEach = function (...args) {\n return (currentContext.beforeEach || currentContext.setup).apply(this, args);\n };\n exports.before = function (...args) {\n return (currentContext.before || currentContext.suiteSetup).apply(this, args);\n };\n exports.describe = function (...args) {\n return (currentContext.describe || currentContext.suite).apply(this, args);\n };\n exports.describe.only = function (...args) {\n return (currentContext.describe || currentContext.suite).only.apply(\n this,\n args\n );\n };\n exports.describe.skip = function (...args) {\n return (currentContext.describe || currentContext.suite).skip.apply(\n this,\n args\n );\n };\n exports.it = function (...args) {\n return (currentContext.it || currentContext.test).apply(this, args);\n };\n exports.it.only = function (...args) {\n return (currentContext.it || currentContext.test).only.apply(this, args);\n };\n exports.it.skip = function (...args) {\n return (currentContext.it || currentContext.test).skip.apply(this, args);\n };\n exports.xdescribe = exports.describe.skip;\n exports.xit = exports.it.skip;\n exports.setup = exports.beforeEach;\n exports.suiteSetup = exports.before;\n exports.suiteTeardown = exports.after;\n exports.suite = exports.describe;\n exports.teardown = exports.afterEach;\n exports.test = exports.it;\n exports.run = function (...args) {\n return currentContext.run.apply(this, args);\n };\n\n /**\n * Constructs a new Mocha instance with `options`.\n *\n * @public\n * @class Mocha\n * @param {Object} [options] - Settings object.\n * @param {boolean} [options.allowUncaught] - Propagate uncaught errors?\n * @param {boolean} [options.asyncOnly] - Force `done` callback or promise?\n * @param {boolean} [options.bail] - Bail after first test failure?\n * @param {boolean} [options.checkLeaks] - Check for global variable leaks?\n * @param {boolean} [options.color] - Color TTY output from reporter?\n * @param {boolean} [options.delay] - Delay root suite execution?\n * @param {boolean} [options.diff] - Show diff on failure?\n * @param {boolean} [options.dryRun] - Report tests without running them?\n * @param {boolean} [options.failZero] - Fail test run if zero tests?\n * @param {string} [options.fgrep] - Test filter given string.\n * @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite?\n * @param {boolean} [options.forbidPending] - Pending tests fail the suite?\n * @param {boolean} [options.fullTrace] - Full stacktrace upon failure?\n * @param {string[]} [options.global] - Variables expected in global scope.\n * @param {RegExp|string} [options.grep] - Test filter given regular expression.\n * @param {boolean} [options.inlineDiffs] - Display inline diffs?\n * @param {boolean} [options.invert] - Invert test filter matches?\n * @param {boolean} [options.noHighlighting] - Disable syntax highlighting?\n * @param {string|constructor} [options.reporter] - Reporter name or constructor.\n * @param {Object} [options.reporterOption] - Reporter settings object.\n * @param {number} [options.retries] - Number of times to retry failed tests.\n * @param {number} [options.slow] - Slow threshold value.\n * @param {number|string} [options.timeout] - Timeout threshold value.\n * @param {string} [options.ui] - Interface name.\n * @param {boolean} [options.parallel] - Run jobs in parallel.\n * @param {number} [options.jobs] - Max number of worker processes for parallel runs.\n * @param {MochaRootHookObject} [options.rootHooks] - Hooks to bootstrap the root suite with.\n * @param {string[]} [options.require] - Pathname of `rootHooks` plugin for parallel runs.\n * @param {boolean} [options.isWorker] - Should be `true` if `Mocha` process is running in a worker process.\n */\n function Mocha(options = {}) {\n options = {...mocharc, ...options};\n this.files = [];\n this.options = options;\n // root suite\n this.suite = new exports.Suite('', new exports.Context(), true);\n this._cleanReferencesAfterRun = true;\n this._state = mochaStates.INIT;\n\n this.grep(options.grep)\n .fgrep(options.fgrep)\n .ui(options.ui)\n .reporter(\n options.reporter,\n options.reporterOption || options.reporterOptions // for backwards compatibility\n )\n .slow(options.slow)\n .global(options.global);\n\n // this guard exists because Suite#timeout does not consider `undefined` to be valid input\n if (typeof options.timeout !== 'undefined') {\n this.timeout(options.timeout === false ? 0 : options.timeout);\n }\n\n if ('retries' in options) {\n this.retries(options.retries);\n }\n\n [\n 'allowUncaught',\n 'asyncOnly',\n 'bail',\n 'checkLeaks',\n 'color',\n 'delay',\n 'diff',\n 'dryRun',\n 'failZero',\n 'forbidOnly',\n 'forbidPending',\n 'fullTrace',\n 'inlineDiffs',\n 'invert'\n ].forEach(function (opt) {\n if (options[opt]) {\n this[opt]();\n }\n }, this);\n\n if (options.rootHooks) {\n this.rootHooks(options.rootHooks);\n }\n\n /**\n * The class which we'll instantiate in {@link Mocha#run}. Defaults to\n * {@link Runner} in serial mode; changes in parallel mode.\n * @memberof Mocha\n * @private\n */\n this._runnerClass = exports.Runner;\n\n /**\n * Whether or not to call {@link Mocha#loadFiles} implicitly when calling\n * {@link Mocha#run}. If this is `true`, then it's up to the consumer to call\n * {@link Mocha#loadFiles} _or_ {@link Mocha#loadFilesAsync}.\n * @private\n * @memberof Mocha\n */\n this._lazyLoadFiles = false;\n\n /**\n * It's useful for a Mocha instance to know if it's running in a worker process.\n * We could derive this via other means, but it's helpful to have a flag to refer to.\n * @memberof Mocha\n * @private\n */\n this.isWorker = Boolean(options.isWorker);\n\n this.globalSetup(options.globalSetup)\n .globalTeardown(options.globalTeardown)\n .enableGlobalSetup(options.enableGlobalSetup)\n .enableGlobalTeardown(options.enableGlobalTeardown);\n\n if (\n options.parallel &&\n (typeof options.jobs === 'undefined' || options.jobs > 1)\n ) {\n debug('attempting to enable parallel mode');\n this.parallelMode(true);\n }\n }\n\n /**\n * Enables or disables bailing on the first failure.\n *\n * @public\n * @see [CLI option](../#-bail-b)\n * @param {boolean} [bail=true] - Whether to bail on first error.\n * @returns {Mocha} this\n * @chainable\n */\n Mocha.prototype.bail = function (bail) {\n this.suite.bail(bail !== false);\n return this;\n };\n\n /**\n * @summary\n * Adds `file` to be loaded for execution.\n *\n * @description\n * Useful for generic setup code that must be included within test suite.\n *\n * @public\n * @see [CLI option](../#-file-filedirectoryglob)\n * @param {string} file - Pathname of file to be loaded.\n * @returns {Mocha} this\n * @chainable\n */\n Mocha.prototype.addFile = function (file) {\n this.files.push(file);\n return this;\n };\n\n /**\n * Sets reporter to `reporter`, defaults to \"spec\".\n *\n * @public\n * @see [CLI option](../#-reporter-name-r-name)\n * @see [Reporters](../#reporters)\n * @param {String|Function} reporterName - Reporter name or constructor.\n * @param {Object} [reporterOptions] - Options used to configure the reporter.\n * @returns {Mocha} this\n * @chainable\n * @throws {Error} if requested reporter cannot be loaded\n * @example\n *\n * // Use XUnit reporter and direct its output to file\n * mocha.reporter('xunit', { output: '/path/to/testspec.xunit.xml' });\n */\n Mocha.prototype.reporter = function (reporterName, reporterOptions) {\n if (typeof reporterName === 'function') {\n this._reporter = reporterName;\n } else {\n reporterName = reporterName || 'spec';\n var reporter;\n // Try to load a built-in reporter.\n if (builtinReporters[reporterName]) {\n reporter = builtinReporters[reporterName];\n }\n // Try to load reporters from process.cwd() and node_modules\n if (!reporter) {\n let foundReporter;\n try {\n foundReporter = require.resolve(reporterName);\n reporter = commonjsRequire(foundReporter);\n } catch (err) {\n if (foundReporter) {\n throw createInvalidReporterError(err.message, foundReporter);\n }\n // Try to load reporters from a cwd-relative path\n try {\n reporter = commonjsRequire(path.resolve(reporterName));\n } catch (e) {\n throw createInvalidReporterError(e.message, reporterName);\n }\n }\n }\n this._reporter = reporter;\n }\n this.options.reporterOption = reporterOptions;\n // alias option name is used in built-in reporters xunit/tap/progress\n this.options.reporterOptions = reporterOptions;\n return this;\n };\n\n /**\n * Sets test UI `name`, defaults to \"bdd\".\n *\n * @public\n * @see [CLI option](../#-ui-name-u-name)\n * @see [Interface DSLs](../#interfaces)\n * @param {string|Function} [ui=bdd] - Interface name or class.\n * @returns {Mocha} this\n * @chainable\n * @throws {Error} if requested interface cannot be loaded\n */\n Mocha.prototype.ui = function (ui) {\n var bindInterface;\n if (typeof ui === 'function') {\n bindInterface = ui;\n } else {\n ui = ui || 'bdd';\n bindInterface = exports.interfaces[ui];\n if (!bindInterface) {\n try {\n bindInterface = commonjsRequire(ui);\n } catch (err) {\n throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui);\n }\n }\n }\n bindInterface(this.suite);\n\n this.suite.on(EVENT_FILE_PRE_REQUIRE, function (context) {\n currentContext = context;\n });\n\n return this;\n };\n\n /**\n * Loads `files` prior to execution. Does not support ES Modules.\n *\n * @description\n * The implementation relies on Node's `require` to execute\n * the test interface functions and will be subject to its cache.\n * Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync.\n *\n * @private\n * @see {@link Mocha#addFile}\n * @see {@link Mocha#run}\n * @see {@link Mocha#unloadFiles}\n * @see {@link Mocha#loadFilesAsync}\n * @param {Function} [fn] - Callback invoked upon completion.\n */\n Mocha.prototype.loadFiles = function (fn) {\n var self = this;\n var suite = this.suite;\n this.files.forEach(function (file) {\n file = path.resolve(file);\n suite.emit(EVENT_FILE_PRE_REQUIRE, commonjsGlobal, file, self);\n suite.emit(EVENT_FILE_REQUIRE, commonjsRequire(file), file, self);\n suite.emit(EVENT_FILE_POST_REQUIRE, commonjsGlobal, file, self);\n });\n fn && fn();\n };\n\n /**\n * Loads `files` prior to execution. Supports Node ES Modules.\n *\n * @description\n * The implementation relies on Node's `require` and `import` to execute\n * the test interface functions and will be subject to its cache.\n * Supports both CJS and ESM modules.\n *\n * @public\n * @see {@link Mocha#addFile}\n * @see {@link Mocha#run}\n * @see {@link Mocha#unloadFiles}\n * @param {Object} [options] - Settings object.\n * @param {Function} [options.esmDecorator] - Function invoked on esm module name right before importing it. By default will passthrough as is.\n * @returns {Promise}\n * @example\n *\n * // loads ESM (and CJS) test files asynchronously, then runs root suite\n * mocha.loadFilesAsync()\n * .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0))\n * .catch(() => process.exitCode = 1);\n */\n Mocha.prototype.loadFilesAsync = function ({esmDecorator} = {}) {\n var self = this;\n var suite = this.suite;\n this.lazyLoadFiles(true);\n\n return esmUtils.loadFilesAsync(\n this.files,\n function (file) {\n suite.emit(EVENT_FILE_PRE_REQUIRE, commonjsGlobal, file, self);\n },\n function (file, resultModule) {\n suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self);\n suite.emit(EVENT_FILE_POST_REQUIRE, commonjsGlobal, file, self);\n },\n esmDecorator\n );\n };\n\n /**\n * Removes a previously loaded file from Node's `require` cache.\n *\n * @private\n * @static\n * @see {@link Mocha#unloadFiles}\n * @param {string} file - Pathname of file to be unloaded.\n */\n Mocha.unloadFile = function (file) {\n if (utils.isBrowser()) {\n throw createUnsupportedError(\n 'unloadFile() is only supported in a Node.js environment'\n );\n }\n return require$$18.unloadFile(file);\n };\n\n /**\n * Unloads `files` from Node's `require` cache.\n *\n * @description\n * This allows required files to be \"freshly\" reloaded, providing the ability\n * to reuse a Mocha instance programmatically.\n * Note: does not clear ESM module files from the cache\n *\n * Intended for consumers — not used internally\n *\n * @public\n * @see {@link Mocha#run}\n * @returns {Mocha} this\n * @chainable\n */\n Mocha.prototype.unloadFiles = function () {\n if (this._state === mochaStates.DISPOSED) {\n throw createMochaInstanceAlreadyDisposedError(\n 'Mocha instance is already disposed, it cannot be used again.',\n this._cleanReferencesAfterRun,\n this\n );\n }\n\n this.files.forEach(function (file) {\n Mocha.unloadFile(file);\n });\n this._state = mochaStates.INIT;\n return this;\n };\n\n /**\n * Sets `grep` filter after escaping RegExp special characters.\n *\n * @public\n * @see {@link Mocha#grep}\n * @param {string} str - Value to be converted to a regexp.\n * @returns {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title begins with `\"foo\"` followed by a period\n * mocha.fgrep('foo.');\n */\n Mocha.prototype.fgrep = function (str) {\n if (!str) {\n return this;\n }\n return this.grep(new RegExp(escapeRe(str)));\n };\n\n /**\n * @summary\n * Sets `grep` filter used to select specific tests for execution.\n *\n * @description\n * If `re` is a regexp-like string, it will be converted to regexp.\n * The regexp is tested against the full title of each test (i.e., the\n * name of the test preceded by titles of each its ancestral suites).\n * As such, using an exact-match fixed pattern against the\n * test name itself will not yield any matches.\n *
        \n * Previous filter value will be overwritten on each call!\n *\n * @public\n * @see [CLI option](../#-grep-regexp-g-regexp)\n * @see {@link Mocha#fgrep}\n * @see {@link Mocha#invert}\n * @param {RegExp|String} re - Regular expression used to select tests.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title contains `\"match\"`, ignoring case\n * mocha.grep(/match/i);\n * @example\n *\n * // Same as above but with regexp-like string argument\n * mocha.grep('/match/i');\n * @example\n *\n * // ## Anti-example\n * // Given embedded test `it('only-this-test')`...\n * mocha.grep('/^only-this-test$/'); // NO! Use `.only()` to do this!\n */\n Mocha.prototype.grep = function (re) {\n if (utils.isString(re)) {\n // extract args if it's regex-like, i.e: [string, pattern, flag]\n var arg = re.match(/^\\/(.*)\\/([gimy]{0,4})$|.*/);\n this.options.grep = new RegExp(arg[1] || arg[0], arg[2]);\n } else {\n this.options.grep = re;\n }\n return this;\n };\n\n /**\n * Inverts `grep` matches.\n *\n * @public\n * @see {@link Mocha#grep}\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title does *not* contain `\"match\"`, ignoring case\n * mocha.grep(/match/i).invert();\n */\n Mocha.prototype.invert = function () {\n this.options.invert = true;\n return this;\n };\n\n /**\n * Enables or disables checking for global variables leaked while running tests.\n *\n * @public\n * @see [CLI option](../#-check-leaks)\n * @param {boolean} [checkLeaks=true] - Whether to check for global variable leaks.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.checkLeaks = function (checkLeaks) {\n this.options.checkLeaks = checkLeaks !== false;\n return this;\n };\n\n /**\n * Enables or disables whether or not to dispose after each test run.\n * Disable this to ensure you can run the test suite multiple times.\n * If disabled, be sure to dispose mocha when you're done to prevent memory leaks.\n * @public\n * @see {@link Mocha#dispose}\n * @param {boolean} cleanReferencesAfterRun\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.cleanReferencesAfterRun = function (cleanReferencesAfterRun) {\n this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false;\n return this;\n };\n\n /**\n * Manually dispose this mocha instance. Mark this instance as `disposed` and unable to run more tests.\n * It also removes function references to tests functions and hooks, so variables trapped in closures can be cleaned by the garbage collector.\n * @public\n */\n Mocha.prototype.dispose = function () {\n if (this._state === mochaStates.RUNNING) {\n throw createMochaInstanceAlreadyRunningError(\n 'Cannot dispose while the mocha instance is still running tests.'\n );\n }\n this.unloadFiles();\n this._previousRunner && this._previousRunner.dispose();\n this.suite.dispose();\n this._state = mochaStates.DISPOSED;\n };\n\n /**\n * Displays full stack trace upon test failure.\n *\n * @public\n * @see [CLI option](../#-full-trace)\n * @param {boolean} [fullTrace=true] - Whether to print full stacktrace upon failure.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.fullTrace = function (fullTrace) {\n this.options.fullTrace = fullTrace !== false;\n return this;\n };\n\n /**\n * Specifies whitelist of variable names to be expected in global scope.\n *\n * @public\n * @see [CLI option](../#-global-variable-name)\n * @see {@link Mocha#checkLeaks}\n * @param {String[]|String} global - Accepted global variable name(s).\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Specify variables to be expected in global scope\n * mocha.global(['jQuery', 'MyLib']);\n */\n Mocha.prototype.global = function (global) {\n this.options.global = (this.options.global || [])\n .concat(global)\n .filter(Boolean)\n .filter(function (elt, idx, arr) {\n return arr.indexOf(elt) === idx;\n });\n return this;\n };\n // for backwards compatibility, 'globals' is an alias of 'global'\n Mocha.prototype.globals = Mocha.prototype.global;\n\n /**\n * Enables or disables TTY color output by screen-oriented reporters.\n *\n * @public\n * @see [CLI option](../#-color-c-colors)\n * @param {boolean} [color=true] - Whether to enable color output.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.color = function (color) {\n this.options.color = color !== false;\n return this;\n };\n\n /**\n * Enables or disables reporter to use inline diffs (rather than +/-)\n * in test failure output.\n *\n * @public\n * @see [CLI option](../#-inline-diffs)\n * @param {boolean} [inlineDiffs=true] - Whether to use inline diffs.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.inlineDiffs = function (inlineDiffs) {\n this.options.inlineDiffs = inlineDiffs !== false;\n return this;\n };\n\n /**\n * Enables or disables reporter to include diff in test failure output.\n *\n * @public\n * @see [CLI option](../#-diff)\n * @param {boolean} [diff=true] - Whether to show diff on failure.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.diff = function (diff) {\n this.options.diff = diff !== false;\n return this;\n };\n\n /**\n * @summary\n * Sets timeout threshold value.\n *\n * @description\n * A string argument can use shorthand (such as \"2s\") and will be converted.\n * If the value is `0`, timeouts will be disabled.\n *\n * @public\n * @see [CLI option](../#-timeout-ms-t-ms)\n * @see [Timeouts](../#timeouts)\n * @param {number|string} msecs - Timeout threshold value.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Sets timeout to one second\n * mocha.timeout(1000);\n * @example\n *\n * // Same as above but using string argument\n * mocha.timeout('1s');\n */\n Mocha.prototype.timeout = function (msecs) {\n this.suite.timeout(msecs);\n return this;\n };\n\n /**\n * Sets the number of times to retry failed tests.\n *\n * @public\n * @see [CLI option](../#-retries-n)\n * @see [Retry Tests](../#retry-tests)\n * @param {number} retry - Number of times to retry failed tests.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Allow any failed test to retry one more time\n * mocha.retries(1);\n */\n Mocha.prototype.retries = function (retry) {\n this.suite.retries(retry);\n return this;\n };\n\n /**\n * Sets slowness threshold value.\n *\n * @public\n * @see [CLI option](../#-slow-ms-s-ms)\n * @param {number} msecs - Slowness threshold value.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Sets \"slow\" threshold to half a second\n * mocha.slow(500);\n * @example\n *\n * // Same as above but using string argument\n * mocha.slow('0.5s');\n */\n Mocha.prototype.slow = function (msecs) {\n this.suite.slow(msecs);\n return this;\n };\n\n /**\n * Forces all tests to either accept a `done` callback or return a promise.\n *\n * @public\n * @see [CLI option](../#-async-only-a)\n * @param {boolean} [asyncOnly=true] - Whether to force `done` callback or promise.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.asyncOnly = function (asyncOnly) {\n this.options.asyncOnly = asyncOnly !== false;\n return this;\n };\n\n /**\n * Disables syntax highlighting (in browser).\n *\n * @public\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.noHighlighting = function () {\n this.options.noHighlighting = true;\n return this;\n };\n\n /**\n * Enables or disables uncaught errors to propagate.\n *\n * @public\n * @see [CLI option](../#-allow-uncaught)\n * @param {boolean} [allowUncaught=true] - Whether to propagate uncaught errors.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.allowUncaught = function (allowUncaught) {\n this.options.allowUncaught = allowUncaught !== false;\n return this;\n };\n\n /**\n * @summary\n * Delays root suite execution.\n *\n * @description\n * Used to perform async operations before any suites are run.\n *\n * @public\n * @see [delayed root suite](../#delayed-root-suite)\n * @returns {Mocha} this\n * @chainable\n */\n Mocha.prototype.delay = function delay() {\n this.options.delay = true;\n return this;\n };\n\n /**\n * Enables or disables running tests in dry-run mode.\n *\n * @public\n * @see [CLI option](../#-dry-run)\n * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.dryRun = function (dryRun) {\n this.options.dryRun = dryRun !== false;\n return this;\n };\n\n /**\n * Fails test run if no tests encountered with exit-code 1.\n *\n * @public\n * @see [CLI option](../#-fail-zero)\n * @param {boolean} [failZero=true] - Whether to fail test run.\n * @return {Mocha} this\n * @chainable\n */\n Mocha.prototype.failZero = function (failZero) {\n this.options.failZero = failZero !== false;\n return this;\n };\n\n /**\n * Causes tests marked `only` to fail the suite.\n *\n * @public\n * @see [CLI option](../#-forbid-only)\n * @param {boolean} [forbidOnly=true] - Whether tests marked `only` fail the suite.\n * @returns {Mocha} this\n * @chainable\n */\n Mocha.prototype.forbidOnly = function (forbidOnly) {\n this.options.forbidOnly = forbidOnly !== false;\n return this;\n };\n\n /**\n * Causes pending tests and tests marked `skip` to fail the suite.\n *\n * @public\n * @see [CLI option](../#-forbid-pending)\n * @param {boolean} [forbidPending=true] - Whether pending tests fail the suite.\n * @returns {Mocha} this\n * @chainable\n */\n Mocha.prototype.forbidPending = function (forbidPending) {\n this.options.forbidPending = forbidPending !== false;\n return this;\n };\n\n /**\n * Throws an error if mocha is in the wrong state to be able to transition to a \"running\" state.\n * @private\n */\n Mocha.prototype._guardRunningStateTransition = function () {\n if (this._state === mochaStates.RUNNING) {\n throw createMochaInstanceAlreadyRunningError(\n 'Mocha instance is currently running tests, cannot start a next test run until this one is done',\n this\n );\n }\n if (\n this._state === mochaStates.DISPOSED ||\n this._state === mochaStates.REFERENCES_CLEANED\n ) {\n throw createMochaInstanceAlreadyDisposedError(\n 'Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.',\n this._cleanReferencesAfterRun,\n this\n );\n }\n };\n\n /**\n * Mocha version as specified by \"package.json\".\n *\n * @name Mocha#version\n * @type string\n * @readonly\n */\n Object.defineProperty(Mocha.prototype, 'version', {\n value: require$$17.version,\n configurable: false,\n enumerable: true,\n writable: false\n });\n\n /**\n * Callback to be invoked when test execution is complete.\n *\n * @private\n * @callback DoneCB\n * @param {number} failures - Number of failures that occurred.\n */\n\n /**\n * Runs root suite and invokes `fn()` when complete.\n *\n * @description\n * To run tests multiple times (or to run tests in files that are\n * already in the `require` cache), make sure to clear them from\n * the cache first!\n *\n * @public\n * @see {@link Mocha#unloadFiles}\n * @see {@link Runner#run}\n * @param {DoneCB} [fn] - Callback invoked when test execution completed.\n * @returns {Runner} runner instance\n * @example\n *\n * // exit with non-zero status if there were test failures\n * mocha.run(failures => process.exitCode = failures ? 1 : 0);\n */\n Mocha.prototype.run = function (fn) {\n this._guardRunningStateTransition();\n this._state = mochaStates.RUNNING;\n if (this._previousRunner) {\n this._previousRunner.dispose();\n this.suite.reset();\n }\n if (this.files.length && !this._lazyLoadFiles) {\n this.loadFiles();\n }\n var suite = this.suite;\n var options = this.options;\n options.files = this.files;\n const runner = new this._runnerClass(suite, {\n cleanReferencesAfterRun: this._cleanReferencesAfterRun,\n delay: options.delay,\n dryRun: options.dryRun,\n failZero: options.failZero\n });\n createStatsCollector(runner);\n var reporter = new this._reporter(runner, options);\n runner.checkLeaks = options.checkLeaks === true;\n runner.fullStackTrace = options.fullTrace;\n runner.asyncOnly = options.asyncOnly;\n runner.allowUncaught = options.allowUncaught;\n runner.forbidOnly = options.forbidOnly;\n runner.forbidPending = options.forbidPending;\n if (options.grep) {\n runner.grep(options.grep, options.invert);\n }\n if (options.global) {\n runner.globals(options.global);\n }\n if (options.color !== undefined) {\n exports.reporters.Base.useColors = options.color;\n }\n exports.reporters.Base.inlineDiffs = options.inlineDiffs;\n exports.reporters.Base.hideDiff = !options.diff;\n\n const done = failures => {\n this._previousRunner = runner;\n this._state = this._cleanReferencesAfterRun\n ? mochaStates.REFERENCES_CLEANED\n : mochaStates.INIT;\n fn = fn || utils.noop;\n if (typeof reporter.done === 'function') {\n reporter.done(failures, fn);\n } else {\n fn(failures);\n }\n };\n\n const runAsync = async runner => {\n const context =\n this.options.enableGlobalSetup && this.hasGlobalSetupFixtures()\n ? await this.runGlobalSetup(runner)\n : {};\n const failureCount = await runner.runAsync({\n files: this.files,\n options\n });\n if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) {\n await this.runGlobalTeardown(runner, {context});\n }\n return failureCount;\n };\n\n // no \"catch\" here is intentional. errors coming out of\n // Runner#run are considered uncaught/unhandled and caught\n // by the `process` event listeners.\n // also: returning anything other than `runner` would be a breaking\n // change\n runAsync(runner).then(done);\n\n return runner;\n };\n\n /**\n * Assigns hooks to the root suite\n * @param {MochaRootHookObject} [hooks] - Hooks to assign to root suite\n * @chainable\n */\n Mocha.prototype.rootHooks = function rootHooks({\n beforeAll = [],\n beforeEach = [],\n afterAll = [],\n afterEach = []\n } = {}) {\n beforeAll = utils.castArray(beforeAll);\n beforeEach = utils.castArray(beforeEach);\n afterAll = utils.castArray(afterAll);\n afterEach = utils.castArray(afterEach);\n beforeAll.forEach(hook => {\n this.suite.beforeAll(hook);\n });\n beforeEach.forEach(hook => {\n this.suite.beforeEach(hook);\n });\n afterAll.forEach(hook => {\n this.suite.afterAll(hook);\n });\n afterEach.forEach(hook => {\n this.suite.afterEach(hook);\n });\n return this;\n };\n\n /**\n * Toggles parallel mode.\n *\n * Must be run before calling {@link Mocha#run}. Changes the `Runner` class to\n * use; also enables lazy file loading if not already done so.\n *\n * Warning: when passed `false` and lazy loading has been enabled _via any means_ (including calling `parallelMode(true)`), this method will _not_ disable lazy loading. Lazy loading is a prerequisite for parallel\n * mode, but parallel mode is _not_ a prerequisite for lazy loading!\n * @param {boolean} [enable] - If `true`, enable; otherwise disable.\n * @throws If run in browser\n * @throws If Mocha not in `INIT` state\n * @returns {Mocha}\n * @chainable\n * @public\n */\n Mocha.prototype.parallelMode = function parallelMode(enable = true) {\n if (utils.isBrowser()) {\n throw createUnsupportedError('parallel mode is only supported in Node.js');\n }\n const parallel = Boolean(enable);\n if (\n parallel === this.options.parallel &&\n this._lazyLoadFiles &&\n this._runnerClass !== exports.Runner\n ) {\n return this;\n }\n if (this._state !== mochaStates.INIT) {\n throw createUnsupportedError(\n 'cannot change parallel mode after having called run()'\n );\n }\n this.options.parallel = parallel;\n\n // swap Runner class\n this._runnerClass = parallel\n ? require$$18\n : exports.Runner;\n\n // lazyLoadFiles may have been set `true` otherwise (for ESM loading),\n // so keep `true` if so.\n return this.lazyLoadFiles(this._lazyLoadFiles || parallel);\n };\n\n /**\n * Disables implicit call to {@link Mocha#loadFiles} in {@link Mocha#run}. This\n * setting is used by watch mode, parallel mode, and for loading ESM files.\n * @todo This should throw if we've already loaded files; such behavior\n * necessitates adding a new state.\n * @param {boolean} [enable] - If `true`, disable eager loading of files in\n * {@link Mocha#run}\n * @chainable\n * @public\n */\n Mocha.prototype.lazyLoadFiles = function lazyLoadFiles(enable) {\n this._lazyLoadFiles = enable === true;\n debug('set lazy load to %s', enable);\n return this;\n };\n\n /**\n * Configures one or more global setup fixtures.\n *\n * If given no parameters, _unsets_ any previously-set fixtures.\n * @chainable\n * @public\n * @param {MochaGlobalFixture|MochaGlobalFixture[]} [setupFns] - Global setup fixture(s)\n * @returns {Mocha}\n */\n Mocha.prototype.globalSetup = function globalSetup(setupFns = []) {\n setupFns = utils.castArray(setupFns);\n this.options.globalSetup = setupFns;\n debug('configured %d global setup functions', setupFns.length);\n return this;\n };\n\n /**\n * Configures one or more global teardown fixtures.\n *\n * If given no parameters, _unsets_ any previously-set fixtures.\n * @chainable\n * @public\n * @param {MochaGlobalFixture|MochaGlobalFixture[]} [teardownFns] - Global teardown fixture(s)\n * @returns {Mocha}\n */\n Mocha.prototype.globalTeardown = function globalTeardown(teardownFns = []) {\n teardownFns = utils.castArray(teardownFns);\n this.options.globalTeardown = teardownFns;\n debug('configured %d global teardown functions', teardownFns.length);\n return this;\n };\n\n /**\n * Run any global setup fixtures sequentially, if any.\n *\n * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalSetup` option is `false`; see {@link Mocha#enableGlobalSetup}.\n *\n * The context object this function resolves with should be consumed by {@link Mocha#runGlobalTeardown}.\n * @param {object} [context] - Context object if already have one\n * @public\n * @returns {Promise} Context object\n */\n Mocha.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) {\n const {globalSetup} = this.options;\n if (globalSetup && globalSetup.length) {\n debug('run(): global setup starting');\n await this._runGlobalFixtures(globalSetup, context);\n debug('run(): global setup complete');\n }\n return context;\n };\n\n /**\n * Run any global teardown fixtures sequentially, if any.\n *\n * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalTeardown` option is `false`; see {@link Mocha#enableGlobalTeardown}.\n *\n * Should be called with context object returned by {@link Mocha#runGlobalSetup}, if applicable.\n * @param {object} [context] - Context object if already have one\n * @public\n * @returns {Promise} Context object\n */\n Mocha.prototype.runGlobalTeardown = async function runGlobalTeardown(\n context = {}\n ) {\n const {globalTeardown} = this.options;\n if (globalTeardown && globalTeardown.length) {\n debug('run(): global teardown starting');\n await this._runGlobalFixtures(globalTeardown, context);\n }\n debug('run(): global teardown complete');\n return context;\n };\n\n /**\n * Run global fixtures sequentially with context `context`\n * @private\n * @param {MochaGlobalFixture[]} [fixtureFns] - Fixtures to run\n * @param {object} [context] - context object\n * @returns {Promise} context object\n */\n Mocha.prototype._runGlobalFixtures = async function _runGlobalFixtures(\n fixtureFns = [],\n context = {}\n ) {\n for await (const fixtureFn of fixtureFns) {\n await fixtureFn.call(context);\n }\n return context;\n };\n\n /**\n * Toggle execution of any global setup fixture(s)\n *\n * @chainable\n * @public\n * @param {boolean } [enabled=true] - If `false`, do not run global setup fixture\n * @returns {Mocha}\n */\n Mocha.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) {\n this.options.enableGlobalSetup = Boolean(enabled);\n return this;\n };\n\n /**\n * Toggle execution of any global teardown fixture(s)\n *\n * @chainable\n * @public\n * @param {boolean } [enabled=true] - If `false`, do not run global teardown fixture\n * @returns {Mocha}\n */\n Mocha.prototype.enableGlobalTeardown = function enableGlobalTeardown(\n enabled = true\n ) {\n this.options.enableGlobalTeardown = Boolean(enabled);\n return this;\n };\n\n /**\n * Returns `true` if one or more global setup fixtures have been supplied.\n * @public\n * @returns {boolean}\n */\n Mocha.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() {\n return Boolean(this.options.globalSetup.length);\n };\n\n /**\n * Returns `true` if one or more global teardown fixtures have been supplied.\n * @public\n * @returns {boolean}\n */\n Mocha.prototype.hasGlobalTeardownFixtures =\n function hasGlobalTeardownFixtures() {\n return Boolean(this.options.globalTeardown.length);\n };\n\n /**\n * An alternative way to define root hooks that works with parallel runs.\n * @typedef {Object} MochaRootHookObject\n * @property {Function|Function[]} [beforeAll] - \"Before all\" hook(s)\n * @property {Function|Function[]} [beforeEach] - \"Before each\" hook(s)\n * @property {Function|Function[]} [afterAll] - \"After all\" hook(s)\n * @property {Function|Function[]} [afterEach] - \"After each\" hook(s)\n */\n\n /**\n * An function that returns a {@link MochaRootHookObject}, either sync or async.\n @callback MochaRootHookFunction\n * @returns {MochaRootHookObject|Promise}\n */\n\n /**\n * A function that's invoked _once_ which is either sync or async.\n * Can be a \"teardown\" or \"setup\". These will all share the same context.\n * @callback MochaGlobalFixture\n * @returns {void|Promise}\n */\n\n /**\n * An object making up all necessary parts of a plugin loader and aggregator\n * @typedef {Object} PluginDefinition\n * @property {string} exportName - Named export to use\n * @property {string} [optionName] - Option name for Mocha constructor (use `exportName` if omitted)\n * @property {PluginValidator} [validate] - Validator function\n * @property {PluginFinalizer} [finalize] - Finalizer/aggregator function\n */\n\n /**\n * A (sync) function to assert a user-supplied plugin implementation is valid.\n *\n * Defined in a {@link PluginDefinition}.\n\n * @callback PluginValidator\n * @param {*} value - Value to check\n * @this {PluginDefinition}\n * @returns {void}\n */\n\n /**\n * A function to finalize plugins impls of a particular ilk\n * @callback PluginFinalizer\n * @param {Array<*>} impls - User-supplied implementations\n * @returns {Promise<*>|*}\n */\n }(mocha$1, mocha$1.exports));\n\n /* eslint no-unused-vars: off */\n /* eslint-env commonjs */\n\n /**\n * Shim process.stdout.\n */\n\n process.stdout = browserStdout({label: false});\n\n var parseQuery = parseQuery$1;\n var highlightTags = highlightTags$1;\n var Mocha = mocha$1.exports;\n\n /**\n * Create a Mocha instance.\n *\n * @return {undefined}\n */\n\n var mocha = new Mocha({reporter: 'html'});\n\n /**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n\n var Date$1 = commonjsGlobal.Date;\n var setTimeout$1 = commonjsGlobal.setTimeout;\n commonjsGlobal.setInterval;\n commonjsGlobal.clearTimeout;\n commonjsGlobal.clearInterval;\n\n var uncaughtExceptionHandlers = [];\n\n var originalOnerrorHandler = commonjsGlobal.onerror;\n\n /**\n * Remove uncaughtException listener.\n * Revert to original onerror handler if previously defined.\n */\n\n process.removeListener = function (e, fn) {\n if (e === 'uncaughtException') {\n if (originalOnerrorHandler) {\n commonjsGlobal.onerror = originalOnerrorHandler;\n } else {\n commonjsGlobal.onerror = function () {};\n }\n var i = uncaughtExceptionHandlers.indexOf(fn);\n if (i !== -1) {\n uncaughtExceptionHandlers.splice(i, 1);\n }\n }\n };\n\n /**\n * Implements listenerCount for 'uncaughtException'.\n */\n\n process.listenerCount = function (name) {\n if (name === 'uncaughtException') {\n return uncaughtExceptionHandlers.length;\n }\n return 0;\n };\n\n /**\n * Implements uncaughtException listener.\n */\n\n process.on = function (e, fn) {\n if (e === 'uncaughtException') {\n commonjsGlobal.onerror = function (err, url, line) {\n fn(new Error(err + ' (' + url + ':' + line + ')'));\n return !mocha.options.allowUncaught;\n };\n uncaughtExceptionHandlers.push(fn);\n }\n };\n\n process.listeners = function (e) {\n if (e === 'uncaughtException') {\n return uncaughtExceptionHandlers;\n }\n return [];\n };\n\n // The BDD UI is registered by default, but no UI will be functional in the\n // browser without an explicit call to the overridden `mocha.ui` (see below).\n // Ensure that this default UI does not expose its methods to the global scope.\n mocha.suite.removeAllListeners('pre-require');\n\n var immediateQueue = [];\n var immediateTimeout;\n\n function timeslice() {\n var immediateStart = new Date$1().getTime();\n while (immediateQueue.length && new Date$1().getTime() - immediateStart < 100) {\n immediateQueue.shift()();\n }\n if (immediateQueue.length) {\n immediateTimeout = setTimeout$1(timeslice, 0);\n } else {\n immediateTimeout = null;\n }\n }\n\n /**\n * High-performance override of Runner.immediately.\n */\n\n Mocha.Runner.immediately = function (callback) {\n immediateQueue.push(callback);\n if (!immediateTimeout) {\n immediateTimeout = setTimeout$1(timeslice, 0);\n }\n };\n\n /**\n * Function to allow assertion libraries to throw errors directly into mocha.\n * This is useful when running tests in a browser because window.onerror will\n * only receive the 'message' attribute of the Error.\n */\n mocha.throwError = function (err) {\n uncaughtExceptionHandlers.forEach(function (fn) {\n fn(err);\n });\n throw err;\n };\n\n /**\n * Override ui to ensure that the ui functions are initialized.\n * Normally this would happen in Mocha.prototype.loadFiles.\n */\n\n mocha.ui = function (ui) {\n Mocha.prototype.ui.call(this, ui);\n this.suite.emit('pre-require', commonjsGlobal, null, this);\n return this;\n };\n\n /**\n * Setup mocha with the given setting options.\n */\n\n mocha.setup = function (opts) {\n if (typeof opts === 'string') {\n opts = {ui: opts};\n }\n if (opts.delay === true) {\n this.delay();\n }\n var self = this;\n Object.keys(opts)\n .filter(function (opt) {\n return opt !== 'delay';\n })\n .forEach(function (opt) {\n if (Object.prototype.hasOwnProperty.call(opts, opt)) {\n self[opt](opts[opt]);\n }\n });\n return this;\n };\n\n /**\n * Run mocha, returning the Runner.\n */\n\n mocha.run = function (fn) {\n var options = mocha.options;\n mocha.globals('location');\n\n var query = parseQuery(commonjsGlobal.location.search || '');\n if (query.grep) {\n mocha.grep(query.grep);\n }\n if (query.fgrep) {\n mocha.fgrep(query.fgrep);\n }\n if (query.invert) {\n mocha.invert();\n }\n\n return Mocha.prototype.run.call(mocha, function (err) {\n // The DOM Document is not available in Web Workers.\n var document = commonjsGlobal.document;\n if (\n document &&\n document.getElementById('mocha') &&\n options.noHighlighting !== true\n ) {\n highlightTags('code');\n }\n if (fn) {\n fn(err);\n }\n });\n };\n\n /**\n * Expose the process shim.\n * https://github.com/mochajs/mocha/pull/916\n */\n\n Mocha.process = process;\n\n /**\n * Expose mocha.\n */\n commonjsGlobal.Mocha = Mocha;\n commonjsGlobal.mocha = mocha;\n\n // for bundlers: enable `import {describe, it} from 'mocha'`\n // `bdd` interface only\n // prettier-ignore\n [ \n 'describe', 'context', 'it', 'specify',\n 'xdescribe', 'xcontext', 'xit', 'xspecify',\n 'before', 'beforeEach', 'afterEach', 'after'\n ].forEach(function(key) {\n mocha[key] = commonjsGlobal[key];\n });\n\n var browserEntry = mocha;\n\n return browserEntry;\n\n}));\n//# sourceMappingURL=mocha.js.map\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\t// no module.id needed\n\t\t// no module.loaded needed\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// Return the exports of the module\n\treturn module.exports;\n}\n\n","__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))","// Imports mocha for the browser, defining the `mocha` global.\nrequire('mocha/mocha');\n\nexport function run(): Promise {\n\n\treturn new Promise((c, e) => {\n\t\tmocha.setup({\n\t\t\tui: 'tdd',\n\t\t\treporter: undefined\n\t\t});\n\n\t\t// Bundles all files in the current directory matching `*.test`\n\t\tconst importAll = (r: __WebpackModuleApi.RequireContext) => r.keys().forEach(r);\n\t\timportAll(require.context('.', true, /\\.test$/));\n\n\t\ttry {\n\t\t\t// Run the mocha test\n\t\t\tmocha.run(failures => {\n\t\t\t\tif (failures > 0) {\n\t\t\t\t\te(new Error(`${failures} tests failed.`));\n\t\t\t\t} else {\n\t\t\t\t\tc();\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t\te(err);\n\t\t}\n\t});\n}\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","inspect","_require$types","isPromise","isRegExp","objectAssign","Object","assign","objectIs","is","lazyLoadComparison","comparison","Map","warned","assert","module","exports","ok","NO_EXCEPTION_SENTINEL","innerFail","message","Error","innerOk","fn","argLen","value","generatedMessage","err","actual","expected","operator","stackStartFn","_len","arguments","length","args","Array","_key","apply","concat","fail","internalMessage","argsLen","undefined","process","emitWarning","console","warn","bind","errArgs","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","keys","_this","this","instance","Constructor","TypeError","_classCallCheck","forEach","key","test","expectedException","msg","name","push","a","b","compareExceptionKey","isPrototypeOf","call","getActual","e","checkIsPromise","then","catch","waitForActual","promiseFn","Promise","resolve","resultPromise","expectsError","error","details","fnType","expectsNoError","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","result","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","split","shift","tmp1","i","pos","indexOf","slice","join","_defineProperty","defineProperty","enumerable","configurable","writable","_defineProperties","target","props","descriptor","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","toString","has","get","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","Reflect","construct","sham","Proxy","Date","isNativeReflectConstruct","o","p","setPrototypeOf","__proto__","getPrototypeOf","endsWith","str","search","this_len","substring","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","kMaxShortLength","copyError","source","inspectValue","val","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","_Error","options","limit","stackTraceLimit","String","stderr","isTTY","getColorDepth","other","res","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","columns","count","Math","floor","maxCount","log","repeat","pop","maxLines","max","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","createErrDiff","base","_res","knownOperators","code","captureStackTrace","protoProps","subClass","superClass","_inherits","custom","recurseTimes","ctx","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","util","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","isArray","len","map","determiner","start","substr","replace","type","reason","inspected","RangeError","input","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","_iterableToArrayLimit","_nonIterableRest","regexFlagsSupported","flags","arrayFromSet","array","arrayFromMap","objectGetOwnPropertySymbols","numberIsNaN","Number","isNaN","uncurryThis","f","hasOwnProperty","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","pow","getOwnNonIndexProperties","compare","x","y","min","kNoIterator","kIsArray","kIsSet","kIsMap","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","RegExp","byteLength","Uint8Array","buffer","byteOffset","areSimilarTypedArrays","offset","areSimilarFloatArrays","_keys","_keys2","size","valueOf","Boolean","BigInt","isEqualBoxedPrimitive","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","memo","aValues","Set","add","setMightHaveLoosePrim","bValues","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","item","mapHasEqualEntry","mapEquiv","keysA","objEquiv","delete","setValues","findLooseMatchingPrimitives","prim","altValue","curB","key1","key2","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","func","applyBind","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","object","predicate","defineProperties","predicates","firstSource","to","nextSource","keysArray","nextIndex","nextKey","desc","polyfill","isCallable","forEachArray","receiver","forEachString","string","charAt","forEachObject","list","thisArg","ERROR_MESSAGE","funcType","that","bound","boundLength","boundArgs","Empty","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt64Array","BigUint64Array","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","JSON","parseFloat","parseInt","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","stringToPath","first","last","match","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","symObj","getOwnPropertyNames","syms","toStringTag","ctor","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","_","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","define","getPolyfill","shim","NaN","availableTypedArrays","gOPD","g","globalThis","typedArrays","$slice","toStrTags","typedArray","proto","superProto","tag","anyTrue","getter","tryTypedArrays","webpackEmptyContext","req","id","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","isObject","isFunction","isArguments","isString","theKeys","skipProto","j","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","suite","vscode","showInformationMessage","arg","copy","fill","readUInt8","isArgumentsObject","isGeneratorFunction","whichTypedArray","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","method","getOwnPropertyDescriptors","descriptors","formatRegExp","format","objects","stringify","isNull","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","toUpperCase","opts","seen","stylize","stylizeNoColor","colors","isBoolean","_extend","isUndefined","stylizeWithColor","formatValue","styleType","style","styles","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","idx","arrayToHash","isError","formatError","output","braces","toUTCString","l","formatProperty","formatArray","reduce","prev","reduceToSingleString","line","ar","re","d","pad","n","debuglog","pid","types","isNullOrUndefined","isSymbol","isPrimitive","isBuffer","months","prop","time","getHours","getMinutes","getSeconds","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","reject","callbackify","callbackified","maybeCb","rej","foundName","webpackContext","webpackContextResolve","__webpack_require__","require","possibleNames","out","global$2","global$1","defaultSetTimout$1","defaultClearTimeout$1","cachedSetTimeout$1","cachedClearTimeout$1","runTimeout$1","currentQueue$1","queue$1","draining$1","queueIndex$1","cleanUpNextTick$1","drainQueue$1","runClearTimeout$1","nextTick$1","Item$1","noop$1","on$1","addListener$1","once$1","off$1","removeListener$1","removeAllListeners$1","emit$1","performance$1","performance","performanceNow$1","now","mozNow","msNow","oNow","webkitNow","startTime$1","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","platform","release","config","uptime","commonjsGlobal","getAugmentedNamespace","__esModule","commonjsRequire","path","EventHandlers","EventEmitter$2","init","$getMaxListeners","_maxListeners","defaultMaxListeners","_addListener","listener","prepend","m","events","existing","_events","newListener","_eventsCount","unshift","w","emitter","_onceWrap","fired","listenerCount$1","evlistener","arrayClone","EventEmitter","usingDomains","domain","active","setMaxListeners","getMaxListeners","er","handler","doError","context","domainEmitter","domainThrown","isFn","emitNone","emitOne","emitTwo","emitThree","emitMany","originalListener","index","spliceOne","unwrapListeners","listenerCount","eventNames","_polyfillNode_events","freeze","lookup$1","revLookup$1","Arr$1","inited$1","init$1","encodeChunk$1","uint8","tmp","num","fromByteArray$1","extraBytes","maxChunkLength","len2","read$1","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","s","write$1","c","rt","abs","LN2","toString$2","isArray$2","kMaxLength$1","Buffer$1","TYPED_ARRAY_SUPPORT","createBuffer$1","encodingOrOffset","allocUnsafe$1","from$1","fromArrayLike$1","fromArrayBuffer$1","encoding","isEncoding","byteLength$1","write","fromString$1","internalIsBuffer$1","checked$1","data","fromObject$1","assertSize$1","_isBuffer","loweredCase","utf8ToBytes$1","base64ToBytes$1","toLowerCase","slowToString$1","hexSlice$1","utf8Slice$1","asciiSlice$1","latin1Slice$1","base64Slice$1","utf16leSlice$1","swap$1","bidirectionalIndexOf$1","from","arrayIndexOf$1","lastIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite$1","remaining","strLen","parsed","utf8Write$1","blitBuffer$1","asciiWrite$1","byteArray","asciiToBytes$1","latin1Write$1","base64Write$1","ucs2Write$1","units","hi","lo","utf16leToBytes$1","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH$1","fromCharCode","decodeCodePointsArray$1","poolSize","_augment","alloc","alloc$1","allocUnsafe","allocUnsafeSlow","isFastBuffer$1","readFloatLE","isSlowBuffer$1","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","bytes","checkOffset$1","ext","checkInt$1","objectWriteUInt16$1","littleEndian","objectWriteUInt32$1","checkIEEE754$1","writeFloat$1","noAssert","writeDouble$1","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE$1","leadSurrogate","b64","placeHolders","L","toByteArray$1","trim","stringtrim$1","base64clean$1","src","dst","performanceNow","startTime","browser$1$1","inherits$3","format$1","isString$1","deprecate$1","debugEnviron","isError$1","isArray$1","isBuffer$1","maybeBuf","timestamp","_polyfillNode_util","_polyfillNode_util$1","BufferList","head","tail","v","entry","clear","isBufferEncoding","StringDecoder","assertEncoding","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","cr","enc","Readable","ReadableState","debug$2","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","readableAddChunk","state","chunk","addToFront","chunkInvalid","emitReadable","onEofChunk","skipAdd","maybeReadMore_","maybeReadMore","needMoreData","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nop","WriteReq","callback","WritableState","getBuffer","writableObjectMode","needDrain","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","_writableState","writecb","writelen","onwriteStateUpdate","pendingcb","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","corkedRequestsFree","CorkedRequest","Writable","_write","writev","_writev","writeOrBuffer","decodeChunk","doWrite","onwriteDrain","finishMaybe","holder","finish","prefinish","need","nOrig","doRead","pipe","dest","pipeOpts","endFn","cleanup","onend","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","increasedAwaitDrain","pause","unpipe","event","resume","dests","ev","wrap","paused","_fromList","current","writeAfterEnd","valid","validChunk","cork","uncork","setDefaultEncoding","endWritable","allowHalfOpen","onEndNT","TransformState","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","Transform","transform","_transform","flush","_flush","ws","PassThrough","Stream","_isStdio","didOnEnd","destroy","require$$0$2","require$$0$1","WritableStream","browserStdout","BrowserStdout","label","inherits$1","chunks","mocha$1","escapeStringRegexp","normalizeArray","allowAboveRoot","up","splitPathRe","splitPath","filename","resolvedPath","resolvedAbsolute","normalize","isPathAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","dirname","root","basename","extname","_polyfillNode_path","sep","delimiter","require$$1","reporters","base$1","lib","Diff","buildValues","diff","components","newString","oldString","useLongestToken","componentPos","componentLen","newPos","oldPos","component","removed","added","oldValue","lastComponent","castInput","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","_oldPos","canAdd","canRemove","pushComponent","commonCount","left","right","comparator","ignoreCase","chars","character","diffChars","oldStr","newStr","characterDiff","word","params","generateOptions","defaults","diffWords","_params$1","ignoreWhitespace","wordDiff","diffWordsWithSpace","_base$5","_interopRequireDefault$6","extendedWordChars","reWhitespace","tokens","diffLines","lineDiff","diffTrimmedLines","_params","_base$4","_interopRequireDefault$5","retLines","linesAndNewlines","newlineIsToken","sentence","diffSentences","sentenceDiff","_interopRequireDefault$4","css","diffCss","cssDiff","_interopRequireDefault$3","json$1","diffJson","oldObj","newObj","jsonDiff","canonicalize","_base$1","_interopRequireDefault$2","_line$1","objectPrototypeToString","replacementStack","replacer","canonicalizedObj","sortedKeys","sort","_this$options","undefinedReplacement","_this$options$stringi","stringifyReplacer","array$1","diffArrays","oldArr","newArr","arrayDiff","_interopRequireDefault$1","parse$2","parsePatch","uniDiff","diffstr","delimiters","parseIndex","header","parseFileHeader","hunks","_line","parseHunk","fileHeader","keyPrefix","fileName","chunkHeaderIndex","chunkHeader","hunk","oldStart","oldLines","newStart","newLines","lines","linedelimiters","addCount","removeCount","operation","distanceIterator","minLine","maxLine","wantForward","backwardExhausted","forwardExhausted","localOffset","applyPatch","applyPatches","_parse$1","currentIndex","processIndex","complete","loadFile","updatedContent","patched","_distanceIterator","_interopRequireDefault","removeEOFNL","addEOFNL","compareLine","lineNumber","patchContent","errorCount","fuzzFactor","hunkFits","toPos","content","diffOffset","_hunk","_toPos","previousOperation","_k","merge$1","structuredPatch","formatPatch","createTwoFilesPatch","createPatch","oldHeader","newHeader","_toConsumableArray$1","_arrayLikeToArray$1","_arrayWithoutHoles$1","iter","_iterableToArray$1","minLen","_unsupportedIterableToArray$1","_nonIterableSpread$1","arr2","oldFileName","newFileName","contextLines","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_loop","_curRange","_curRange2","_curRange3","contextSize","oldEOFNewline","newEOFNewline","noNlBeforeAdds","arrayStartsWith","arrayEqual","calcLineCount","merge","mine","theirs","loadPatch","fileNameChanged","selectField","mineIndex","theirsIndex","mineOffset","theirsOffset","mineCurrent","theirsCurrent","hunkBefore","cloneHunk","mergedHunk","mergeLines","_create","_parse","_array","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_calcOldNewLineCount","calcOldNewLineCount","param","patch","conflict","check","mineLines","theirOffset","theirLines","their","insertLeading","theirCurrent","_hunk$lines","collectChange","_hunk$lines2","removal","mutualChange","insertTrailing","myChanges","theirChanges","allRemoves","_hunk$lines3","_hunk$lines4","skipRemoveSuperset","_hunk$lines5","swap","_hunk$lines6","matchChanges","changes","merged","matchIndex","contextChanges","conflicted","change","collectContext","insert","removeChanges","delta","changeContent","myCount","theirCount","dmp","convertChangesToDMP","xml","escapeHTML","convertChangesToXML","_base","_character","_word","_sentence","_css","_json","_apply","_merge","_dmp","_xml","s$1","m$1","h$1","d$1","w$1","y$1","ms$1","parse$1","long","ms","msAbs","plural$1","fmtLong$1","round","fmtShort$1","isPlural","lookup","revLookup","Arr","inited","encodeChunk","fromByteArray","toString$1","kMaxLength","Buffer","createBuffer","fromArrayLike","fromArrayBuffer","fromString","internalIsBuffer","checked","fromObject","assertSize","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","hexWrite","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","checkOffset","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","writeDouble","INVALID_BASE64_RE","toByteArray","stringtrim","base64clean","isFastBuffer","isSlowBuffer","utils$3","nonSecure","nanoid","random","customAlphabet","alphabet","defaultSize","he","freeExports","freeModule","freeGlobal","global","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","propertyName","codePointToSymbol","parseError","contains","hexEscape","decEscape","encode","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","$0","high","low","decode","html","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","nodeType","he$1","MOCHA_ID_PROP_NAME","emptyRepresentation","typeHint","escape","slug","clean","spaces","tabs","canonicalType","jsonStringify","_stringify","space","sDate","toISOString","json","primitives","_type","acc","char","withStack","stackTraceFilter","node","slash","location","href","isMochaInternal","isNodeInternal","clamp","range","createMap","defineConstants","isBrowser","castArray","constants","uniqueID","assignNewMochaID","getMochaID","require$$18","browser$1","info","success","warning","require$$0","pending","h","parse","plural","fmtLong","fmtShort","common$1","createDebug","namespace","prevTime","namespacesCache","enabledCache","enableOverride","debug","enabled","curr","coerce","formatter","formatters","formatArgs","useColors","color","selectColor","extend","namespaces","newDebug","toNamespace","regexp","default","disable","names","skips","enable","save","humanize","load","lastC","storage","setItem","removeItem","r","getItem","DEBUG","__nwjs","navigator","userAgent","documentElement","WebkitAppearance","firebug","exception","table","localStorage","localstorage","cache","constants$4","FATAL","INVALID_ARG_TYPE","INVALID_ARG_VALUE","INVALID_EXCEPTION","INVALID_INTERFACE","INVALID_REPORTER","MULTIPLE_DONE","NO_FILES_MATCH_PATTERN","UNSUPPORTED","INSTANCE_ALREADY_RUNNING","INSTANCE_ALREADY_DISPOSED","FORBIDDEN_EXCLUSIVITY","INVALID_PLUGIN_IMPLEMENTATION","INVALID_PLUGIN_DEFINITION","TIMEOUT","UNPARSABLE_FILE","MOCHA_ERRORS","values","createInvalidReporterError","reporter","createInvalidInterfaceError","ui","interface","createInvalidArgumentTypeError$1","argument","createInvalidLegacyPluginError","pluginType","pluginId","errors$2","createFatalError","valueType","createForbiddenExclusivityError","mocha","isWorker","createInvalidArgumentTypeError","createInvalidArgumentValueError","createInvalidExceptionError","createInvalidPluginDefinitionError","pluginDef","createInvalidPluginError","createInvalidPluginImplementationError","pluginImpl","createMissingArgumentError","createMochaInstanceAlreadyDisposedError","cleanReferencesAfterRun","createMochaInstanceAlreadyRunningError","createMultipleDoneError","runnable","originalErr","fullTitle","parent","ignored","file","createNoFilesMatchPatternError","pattern","createTimeoutError","createUnparsableFileError","createUnsupportedError","isMochaError","EventEmitter$1","Pending$1","debug$1","milliseconds","utils$2","createInvalidExceptionError$1","Date$3","setTimeout$2","clearTimeout$1","Runnable$3","body","async","_timeout","_slow","_retries","reset","timedOut","_currentRetry","timer","resetTimeout","slow","skip","isPending","isFailed","constants$3","STATE_FAILED","isPassed","STATE_PASSED","retries","currentRetry","titlePath","_timeoutError","globals","_allowedGlobals","errorWasHandled","multiple","duration","callFnAsync","allowUncaught","toValueOrError","asyncOnly","callFn","STATE_PENDING","Runnable$2","constants$2","MOCHA_ID_PROP_NAME$1","hook","Hook","_error","serialize","$$currentRetry","$$fullTitle","$$isPending","$$titlePath","currentTest","utilsConstants","errors","Suite","parentContext","isRoot","Context","suites","tests","_beforeEach","_beforeAll","_afterEach","_afterAll","_bail","_onlyTests","_onlySuites","addSuite","doReset","thingToReset","delayed","clone","bail","INT_MAX","_createHook","beforeAll","EVENT_SUITE_ADD_HOOK_BEFORE_ALL","afterAll","EVENT_SUITE_ADD_HOOK_AFTER_ALL","beforeEach","EVENT_SUITE_ADD_HOOK_BEFORE_EACH","afterEach","EVENT_SUITE_ADD_HOOK_AFTER_EACH","EVENT_SUITE_ADD_SUITE","addTest","EVENT_SUITE_ADD_TEST","total","sum","eachTest","EVENT_ROOT_SUITE_RUN","hasOnly","some","filterOnly","onlySuite","onlySuites","childSuite","appendOnlySuite","markOnly","appendOnlyTest","getHooks","dispose","cleanReferences","cleanArrReferences","EVENT_FILE_POST_REQUIRE","EVENT_FILE_PRE_REQUIRE","EVENT_FILE_REQUIRE","HOOK_TYPE_AFTER_ALL","HOOK_TYPE_AFTER_EACH","HOOK_TYPE_BEFORE_ALL","HOOK_TYPE_BEFORE_EACH","Pending","utils$1","Runnable$1","Suite$2","stackFilter","createUnsupportedError$1","errorConstants","constants$1","EVENT_HOOK_BEGIN","EVENT_HOOK_END","EVENT_RUN_BEGIN","EVENT_DELAY_BEGIN","EVENT_DELAY_END","EVENT_RUN_END","EVENT_SUITE_BEGIN","EVENT_SUITE_END","EVENT_TEST_BEGIN","EVENT_TEST_END","EVENT_TEST_FAIL","EVENT_TEST_PASS","EVENT_TEST_PENDING","EVENT_TEST_RETRY","STATE_IDLE","STATE_RUNNING","STATE_STOPPED","Runner","super","_globals","_abort","_opts","failures","_eventListeners","retriedTest","checkGlobals","_defaultGrep","grep","globalProps","uncaught","_uncaught","unhandled","_removeEventListener","_addEventListener","thrown2Error","immediately","setImmediate","eventName","targetListeners","targetEventListeners","invert","_grep","_invert","grepTotal","checkLeaks","leaks","prevGlobalsLength","matched","filterLeaks","force","fullStackTrace","ignore","dryRun","hooks","setHookTitle","parentTitle","originalTitle","currentRunnable","testError","errForbid","orig","errSuite","hookUp","parents","reverse","hookDown","runTest","runTests","hookErr","after","err2","errSuite2","forbidPending","origSuite","eSuite","retry","clonedTest","runSuite","nextSuite","abort","rootSuite","failZero","begin","prepare","delay","linkPartialObjects","runAsync","isParallelMode","workerReporter","runner","utils","supportsColor","symbols","isatty","stdout","consoleLog","MOCHA_COLORS","inlineDiffs","maxDiffSize","pass","checkmark","fast","medium","light","dot","comma","bang","width","innerHeight","innerWidth","getWindowSize","cursor","hide","show","deleteLine","beginningOfLine","CR","showDiff","objToString","stringifyDiffObjs","generateDiff","maxLen","colorLines","errorDiff","inlineDiff","indent","cleanUp","notBlank","unifiedDiff","stats","maxDiffSizeOpt","reporterOption","speed","multipleErr","multipleTest","fmt","hideDiff","testTitle","epilogue","passes","abstract","Dot","description","doc","Doc","indents","tap","sprintf","TAP","tapVersion","reporterOptions","_producer","producer","TAP12Producer","TAP13Producer","createProducer","writeVersion","writePending","writePass","writeFail","writeEpilogue","println","varArgs","vargs","TAPProducer","level","writePlan","ntests","require$$2","fs","JSONReporter","testResults","mkdirSync","recursive","writeFileSync","errorJSON","cleanCycles","progress$1","Progress","percent","fontSize","font","_size","text","_text","_fontSize","family","_font","update","draw","matchMedia","matches","outerCircle","innerCircle","half","rad","angle","PI","clearRect","strokeStyle","beginPath","arc","stroke","measureText","fillStyle","fillText","escapeRe","HTML","statsTemplate","playIcon","progress","stat","fragment","items","getElementsByTagName","passesLink","failuresLink","canvas","report","getElementById","getContext","ratio","devicePixelRatio","height","scale","appendChild","appendToStack","el","updateStats","toFixed","evt","preventDefault","unhide","className","hideSuitesWithout","suiteURL","createElement","url","testURL","addCodeToggle","stackString","indexOfMessage","sourceURL","htmlMessage","makeUrl","pathname","div","innerHTML","firstChild","classname","getElementsByClassName","els","contents","textContent","innerText","addEventListener","attachEvent","pre","display","browserOnly","List","Min","spec","Spec","nyan","NyanCat","nyanCatWidth","colorIndex","numberOfLines","rainbowColors","generateColors","scoreboardWidth","tick","trajectories","trajectoryWidthMax","appendRainbow","drawScoreboard","drawRainbow","drawNyanCat","cursorUp","segment","rainbowified","rainbowify","trajectory","dist","padding","face","cursorDown","pi3","sin","xunit","XUnit","suiteName","createWriteStream","fileStream","t","attrs","close","pairs","markdown","SUITE_PREFIX","Markdown","mapTOC","stringifyTOC","link","generateTOC","lastN","open","incomplete","verbose","landing","Landing","plane","crashed","runway","col","kill","jsonStream","JSONStream","writeEvent","Nyan","require$$4","extension","Date$2","statsCollector","interfaces","bdd","Runnable","Test$4","_retriedTest","$$retriedTest","$$slow","Suite$1","common","runWithSuite","before","only","forbidOnly","isOnly","shouldBeTested","Test$3","EVENT_FILE_PRE_REQUIRE$2","describe","xdescribe","xcontext","it","specify","xit","xspecify","tdd","Test$2","EVENT_FILE_PRE_REQUIRE$1","setup","teardown","suiteSetup","suiteTeardown","qunit","Test$1","exports$1","Test","visit","_runnable","require$$17","builtinReporters","mocharc","esmUtils","createStatsCollector","Mocha","mochaStates","INIT","RUNNING","REFERENCES_CLEANED","DISPOSED","paths","currentContext","files","_cleanReferencesAfterRun","_state","fgrep","opt","rootHooks","_runnerClass","_lazyLoadFiles","globalSetup","globalTeardown","enableGlobalSetup","enableGlobalTeardown","parallel","jobs","parallelMode","addFile","reporterName","_reporter","foundReporter","bindInterface","loadFiles","loadFilesAsync","esmDecorator","lazyLoadFiles","resultModule","unloadFile","unloadFiles","_previousRunner","fullTrace","elt","msecs","noHighlighting","_guardRunningStateTransition","hasGlobalSetupFixtures","runGlobalSetup","failureCount","hasGlobalTeardownFixtures","runGlobalTeardown","setupFns","teardownFns","_runGlobalFixtures","fixtureFns","fixtureFn","parseQuery","qs","pair","highlightTags","Date$1","setTimeout$1","setInterval","clearInterval","uncaughtExceptionHandlers","originalOnerrorHandler","immediateTimeout","immediateQueue","timeslice","immediateStart","throwError","query","factory","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""} \ No newline at end of file diff --git a/vscode-web-ext/src/web/extension.ts b/vscode-web-ext/src/web/extension.ts index 0624109..d6c4052 100644 --- a/vscode-web-ext/src/web/extension.ts +++ b/vscode-web-ext/src/web/extension.ts @@ -17,23 +17,30 @@ async function showAllFunctionProjects(context: vscode.ExtensionContext) { const hostJsonFolders = []; - for (const folder of vscode.workspace.workspaceFolders) { + try{ - for await (const hostJsonPath of fsWrapper.findFilesRecursivelyAsync(folder.uri.toString(), new RegExp('host.json', 'i'))) { - - hostJsonFolders.push(fsWrapper.dirName(hostJsonPath)); + for (const folder of vscode.workspace.workspaceFolders) { + + for await (const hostJsonPath of fsWrapper.findFilesRecursivelyAsync(folder.uri.toString(), new RegExp('host.json', 'i'))) { + + hostJsonFolders.push(fsWrapper.dirName(hostJsonPath)); + } } - } - if (hostJsonFolders.length > MaxProjectsToShowAutomatically) { - - const userResponse = await vscode.window.showWarningMessage( - `az-func-as-a-graph found ${hostJsonFolders.length} Azure Functions projects in current workspace. Do you want to visualize all of them?`, - 'Yes', 'No'); + if (hostJsonFolders.length > MaxProjectsToShowAutomatically) { + + const userResponse = await vscode.window.showWarningMessage( + `az-func-as-a-graph found ${hostJsonFolders.length} Azure Functions projects in current workspace. Do you want to visualize all of them?`, + 'Yes', 'No'); - if (userResponse !== 'Yes') { - return; + if (userResponse !== 'Yes') { + return; + } } + + } catch (err: any) { + + vscode.window.showErrorMessage(`az-func-as-a-graph failed. ${err.message ?? err}`); } for (const hostJsonFolder of hostJsonFolders) {