Page MenuHomeSoftware Heritage

webapp.9cdf52b438432137acfb.js.map
No OneTemporary

webapp.9cdf52b438432137acfb.js.map

{
"version": 3,
"file": "js/webapp.9cdf52b438432137acfb.js",
"mappings": "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e,MAAM,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,OAAO,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAO,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,UAAU,IAAS,UAAU,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAA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",
"sources": [
"webpack://swh/webpack/universalModuleDefinition",
"webpack://swh/webpack/runtime/create fake namespace object",
"webpack://swh/webpack/runtime/load script",
"webpack://swh/webpack/runtime/css loading",
"webpack://swh/./node_modules/@babel/runtime/regenerator/index.js",
"webpack://swh/./node_modules/@sentry/browser/esm/client.js",
"webpack://swh/./node_modules/@sentry/browser/esm/eventbuilder.js",
"webpack://swh/./node_modules/@sentry/browser/esm/helpers.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/dedupe.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/httpcontext.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/linkederrors.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/trycatch.js",
"webpack://swh/./node_modules/@sentry/browser/esm/sdk.js",
"webpack://swh/./node_modules/@sentry/browser/esm/stack-parsers.js",
"webpack://swh/./node_modules/@sentry/browser/esm/transports/fetch.js",
"webpack://swh/./node_modules/@sentry/browser/esm/transports/utils.js",
"webpack://swh/./node_modules/@sentry/browser/esm/transports/xhr.js",
"webpack://swh/./node_modules/@sentry/core/esm/api.js",
"webpack://swh/./node_modules/@sentry/core/esm/baseclient.js",
"webpack://swh/./node_modules/@sentry/core/esm/envelope.js",
"webpack://swh/./node_modules/@sentry/core/esm/exports.js",
"webpack://swh/./node_modules/@sentry/core/esm/hub.js",
"webpack://swh/./node_modules/@sentry/core/esm/integration.js",
"webpack://swh/./node_modules/@sentry/core/esm/integrations/functiontostring.js",
"webpack://swh/./node_modules/@sentry/core/esm/integrations/inboundfilters.js",
"webpack://swh/./node_modules/@sentry/core/esm/scope.js",
"webpack://swh/./node_modules/@sentry/core/esm/sdk.js",
"webpack://swh/./node_modules/@sentry/core/esm/session.js",
"webpack://swh/./node_modules/@sentry/core/esm/transports/base.js",
"webpack://swh/./node_modules/@sentry/core/esm/version.js",
"webpack://swh/./node_modules/@sentry/utils/esm/browser.js",
"webpack://swh/./node_modules/@sentry/utils/esm/clientreport.js",
"webpack://swh/./node_modules/@sentry/utils/esm/dsn.js",
"webpack://swh/./node_modules/@sentry/utils/esm/env.js",
"webpack://swh/./node_modules/@sentry/utils/esm/envelope.js",
"webpack://swh/./node_modules/@sentry/utils/esm/error.js",
"webpack://swh/./node_modules/@sentry/utils/esm/instrument.js",
"webpack://swh/./node_modules/@sentry/utils/esm/is.js",
"webpack://swh/./node_modules/@sentry/utils/esm/logger.js",
"webpack://swh/./node_modules/@sentry/utils/esm/memo.js",
"webpack://swh/./node_modules/@sentry/utils/esm/misc.js",
"webpack://swh/./node_modules/@sentry/utils/esm/node.js",
"webpack://swh/./node_modules/@sentry/utils/esm/normalize.js",
"webpack://swh/./node_modules/@sentry/utils/esm/object.js",
"webpack://swh/./node_modules/@sentry/utils/esm/promisebuffer.js",
"webpack://swh/./node_modules/@sentry/utils/esm/ratelimit.js",
"webpack://swh/./node_modules/@sentry/utils/esm/severity.js",
"webpack://swh/./node_modules/@sentry/utils/esm/stacktrace.js",
"webpack://swh/./node_modules/@sentry/utils/esm/string.js",
"webpack://swh/./node_modules/@sentry/utils/esm/supports.js",
"webpack://swh/./node_modules/@sentry/utils/esm/syncpromise.js",
"webpack://swh/./node_modules/@sentry/utils/esm/time.js",
"webpack://swh/./node_modules/@sentry/utils/esm/url.js",
"webpack://swh/./node_modules/@sentry/utils/esm/worldwide.js",
"webpack://swh/./node_modules/ansi_up/ansi_up.js",
"webpack://swh/./assets/src/utils/constants.js",
"webpack://swh/./assets/src/utils/functions.js",
"webpack://swh/./swh/web/webapp/assets/webapp/badges.js",
"webpack://swh/./swh/web/webapp/assets/webapp/code-highlighting.js",
"webpack://swh/./swh/web/webapp/assets/webapp/history-counters.js",
"webpack://swh/./swh/web/webapp/assets/webapp/math-typesetting.js",
"webpack://swh/./swh/web/webapp/assets/webapp/notebook-rendering.js",
"webpack://swh/./swh/web/webapp/assets/webapp/pdf-rendering.js",
"webpack://swh/./swh/web/webapp/assets/webapp/readme-rendering.js",
"webpack://swh/./swh/web/webapp/assets/webapp/sentry.js",
"webpack://swh/./swh/web/webapp/assets/webapp/status-widget.js",
"webpack://swh/./swh/web/webapp/assets/webapp/webapp-utils.js",
"webpack://swh/./swh/web/webapp/assets/webapp/xss-filtering.js",
"webpack://swh/./node_modules/dompurify/dist/purify.js",
"webpack://swh/./node_modules/he/he.js",
"webpack://swh/./node_modules/html-encoder-decoder/lib/index.js",
"webpack://swh/./node_modules/iterate-object/lib/index.js",
"webpack://swh/./node_modules/object-fit-images/dist/ofi.common-js.js",
"webpack://swh/./node_modules/notebookjs/notebook.js",
"webpack://swh/./node_modules/regenerator-runtime/runtime.js",
"webpack://swh/./node_modules/regex-escape/lib/index.js",
"webpack://swh/./node_modules/script-loader/addScript.js",
"webpack://swh/./node_modules/notebookjs/notebook.js?2bc4",
"webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js",
"webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs",
"webpack://swh/webpack/bootstrap",
"webpack://swh/webpack/runtime/compat get default export",
"webpack://swh/webpack/runtime/define property getters",
"webpack://swh/webpack/runtime/ensure chunk",
"webpack://swh/webpack/runtime/get javascript chunk filename",
"webpack://swh/webpack/runtime/get mini-css chunk filename",
"webpack://swh/webpack/runtime/global",
"webpack://swh/webpack/runtime/harmony module decorator",
"webpack://swh/webpack/runtime/hasOwnProperty shorthand",
"webpack://swh/webpack/runtime/make namespace object",
"webpack://swh/webpack/runtime/node module decorator",
"webpack://swh/webpack/runtime/publicPath",
"webpack://swh/webpack/runtime/jsonp chunk loading",
"webpack://swh/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js"
],
"sourcesContent": [
"(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"webapp\"] = factory();\n})(self, function() {\nreturn ",
"var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};",
"var inProgress = {};\nvar dataWebpackPrefix = \"swh:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};",
"var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t836: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"46\":1,\"399\":1,\"522\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr",
"module.exports = require(\"regenerator-runtime\");\n",
"import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n const isRealNavigator = Object.prototype.toString.call(WINDOW && WINDOW.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof WINDOW.navigator.sendBeacon === 'function';\n // Make sure beacon is not used if user configures custom transport options\n if (hasSendBeacon && !this._options.transportOptions) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = WINDOW.navigator.sendBeacon.bind(WINDOW.navigator);\n sendBeacon(url, serializeEnvelope(envelope));\n } else {\n // If beacon is not supported or if they are using the tunnel option\n // use our regular transport to send client reports to Sentry.\n this._sendEnvelope(envelope);\n }\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n",
"import { getCurrentHub } from '@sentry/core';\nimport { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n const event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n",
"import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n",
"import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, parseUrl } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\nconst BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n : htmlTreeAsString(handlerData.event , keyAttrs);\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData) {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/6010\n // see: https://github.com/getsentry/sentry-javascript/issues/5916\n for (let i = 0; i < handlerData.args.length; i++) {\n if (handlerData.args[i] === 'ref=Ref<') {\n handlerData.args[i + 1] = 'viewRef';\n break;\n }\n }\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData) {\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n",
"import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n const eventProcessor = currentEvent => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n",
"import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n",
"import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n",
"import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n const client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n",
"import { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n if (this._options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n",
"import { Integrations, getIntegrationsToSetup, initAndBind, getReportDialogEndpoint, getCurrentHub } from '@sentry/core';\nimport { stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { WINDOW, wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nconst defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n",
"import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n",
"import { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n const requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch), a request with `keepalive: true`\n // and a content length of > 64 kibibytes returns a network error. We will therefore only activate the flag when\n // we're below that limit.\n keepalive: request.body.length <= 65536,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n } catch (e) {\n clearCachedFetchImplementation();\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n",
"import { isNativeFetch, logger } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\nlet cachedFetchImpl = undefined;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nfunction clearCachedFetchImplementation() {\n cachedFetchImpl = undefined;\n}\n\nexport { clearCachedFetchImplementation, getNativeFetchImplementation };\n//# sourceMappingURL=utils.js.map\n",
"import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n",
"import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(\n dsn,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions = {} ,\n) {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n",
"import { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\nimport { Scope } from './scope.js';\nimport { updateSession } from './session.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // Collect attachments from the hint and scope\n const attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n _applyClientOptions(event) {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n const isTransaction = event.type === 'transaction';\n const beforeSendProcessorName = isTransaction ? 'beforeSendTransaction' : 'beforeSend';\n const beforeSendProcessor = options[beforeSendProcessorName];\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', event.type || 'error');\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException || !beforeSendProcessor) {\n return prepared;\n }\n\n const beforeSendResult = beforeSendProcessor(prepared, hint);\n return _validateBeforeSendResult(beforeSendResult, beforeSendProcessorName);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error');\n throw new SentryError(`\\`${beforeSendProcessorName}\\` returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n changes: [\n ...transactionInfo.changes,\n {\n source,\n // use the same timestamp as the processed event.\n timestamp: processedEvent.timestamp ,\n propagations: transactionInfo.propagations,\n },\n ],\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendProcessorName,\n) {\n const invalidValueError = `\\`${beforeSendProcessorName}\\` must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`\\`${beforeSendProcessorName}\\` rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n",
"import { dsnToString, createEnvelope, dropUndefinedKeys } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n const { name, version } = metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const eventType = event.type || 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
"import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n",
"import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, GLOBAL_OBJ, isNodeEnv, getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nconst API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n __init() {this._stack = [{}];}\n\n /** Contains the last event id of a captured event. */\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n captureException(exception, hint) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n ) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setContext(name, context) {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _callExtensionMethod(method, ...args) {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n",
"import { arrayify, logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\nimport { addGlobalEventProcessor } from './scope.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n",
"import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n",
"import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n const eventProcess = (event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n",
"import { isPlainObject, dateTimestampInSeconds, SyncPromise, logger, isThenable, arrayify, getGlobalSingleton } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called after {@link applyToEvent}. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n\n /** Transaction Name */\n\n /** Span */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n",
"import { logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n",
"import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. \u2014 Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n",
"import { forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError, makePromiseBuffer } from '@sentry/utils';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n",
"const SDK_VERSION = '7.20.1';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n",
"import { isString } from './is.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem, keyAttrs) {\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement<Element>('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\nexport { getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n",
"import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n",
"import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n",
"/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n",
"import { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n const envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
"/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n",
"import { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers = {};\nconst instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in WINDOW)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in WINDOW.console)) {\n return;\n }\n\n fill(WINDOW.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(WINDOW.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(WINDOW, 'fetch', function (originalFetch) {\n return function (...args) {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(WINDOW, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in WINDOW)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in WINDOW)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n",
"// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n",
"import { GLOBAL_OBJ, getGlobalSingleton } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n",
"/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n",
"import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n",
"import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n",
"import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n",
"import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n",
"import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n const buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n",
"// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n",
"// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n",
"import { _optionalChain } from './buildPolyfills';\n\nconst STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n const frames = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = line.replace(/\\(error: (.*)\\)/, '$1');\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n// eslint-disable-next-line complexity\nfunction node(getModule) {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n\n // eslint-disable-next-line complexity\n return (line) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n // eslint-disable-next-line no-plusplus\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '<anonymous>') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '<anonymous>';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n const filename = _optionalChain([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];\n const isNative = lineMatch[5] === 'native';\n const isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n const in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: _optionalChain([getModule, 'optionalCall', _4 => _4(filename)]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n",
"import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n",
"import { logger } from './logger.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW ).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n",
"import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: \u00af\\_(\u30c4)_/\u00af\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n",
"import { dynamicRequire, isNodeEnv } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n",
"/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\nexport { getNumberOfUrlSegments, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n",
"/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\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 deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// 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 OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n",
"/* ansi_up.js\n * author : Dru Nelson\n * license : MIT\n * http://github.com/drudru/ansi_up\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports'], factory);\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n // CommonJS\n factory(exports);\n } else {\n // Browser globals\n var exp = {};\n factory(exp);\n root.AnsiUp = exp.default;\n }\n}(this, function (exports) {\n\"use strict\";\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar PacketKind;\n(function (PacketKind) {\n PacketKind[PacketKind[\"EOS\"] = 0] = \"EOS\";\n PacketKind[PacketKind[\"Text\"] = 1] = \"Text\";\n PacketKind[PacketKind[\"Incomplete\"] = 2] = \"Incomplete\";\n PacketKind[PacketKind[\"ESC\"] = 3] = \"ESC\";\n PacketKind[PacketKind[\"Unknown\"] = 4] = \"Unknown\";\n PacketKind[PacketKind[\"SGR\"] = 5] = \"SGR\";\n PacketKind[PacketKind[\"OSCURL\"] = 6] = \"OSCURL\";\n})(PacketKind || (PacketKind = {}));\nvar AnsiUp = (function () {\n function AnsiUp() {\n this.VERSION = \"5.1.0\";\n this.setup_palettes();\n this._use_classes = false;\n this.bold = false;\n this.italic = false;\n this.underline = false;\n this.fg = this.bg = null;\n this._buffer = '';\n this._url_whitelist = { 'http': 1, 'https': 1 };\n }\n Object.defineProperty(AnsiUp.prototype, \"use_classes\", {\n get: function () {\n return this._use_classes;\n },\n set: function (arg) {\n this._use_classes = arg;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AnsiUp.prototype, \"url_whitelist\", {\n get: function () {\n return this._url_whitelist;\n },\n set: function (arg) {\n this._url_whitelist = arg;\n },\n enumerable: false,\n configurable: true\n });\n AnsiUp.prototype.setup_palettes = function () {\n var _this = this;\n this.ansi_colors =\n [\n [\n { rgb: [0, 0, 0], class_name: \"ansi-black\" },\n { rgb: [187, 0, 0], class_name: \"ansi-red\" },\n { rgb: [0, 187, 0], class_name: \"ansi-green\" },\n { rgb: [187, 187, 0], class_name: \"ansi-yellow\" },\n { rgb: [0, 0, 187], class_name: \"ansi-blue\" },\n { rgb: [187, 0, 187], class_name: \"ansi-magenta\" },\n { rgb: [0, 187, 187], class_name: \"ansi-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-white\" }\n ],\n [\n { rgb: [85, 85, 85], class_name: \"ansi-bright-black\" },\n { rgb: [255, 85, 85], class_name: \"ansi-bright-red\" },\n { rgb: [0, 255, 0], class_name: \"ansi-bright-green\" },\n { rgb: [255, 255, 85], class_name: \"ansi-bright-yellow\" },\n { rgb: [85, 85, 255], class_name: \"ansi-bright-blue\" },\n { rgb: [255, 85, 255], class_name: \"ansi-bright-magenta\" },\n { rgb: [85, 255, 255], class_name: \"ansi-bright-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-bright-white\" }\n ]\n ];\n this.palette_256 = [];\n this.ansi_colors.forEach(function (palette) {\n palette.forEach(function (rec) {\n _this.palette_256.push(rec);\n });\n });\n var levels = [0, 95, 135, 175, 215, 255];\n for (var r = 0; r < 6; ++r) {\n for (var g = 0; g < 6; ++g) {\n for (var b = 0; b < 6; ++b) {\n var col = { rgb: [levels[r], levels[g], levels[b]], class_name: 'truecolor' };\n this.palette_256.push(col);\n }\n }\n }\n var grey_level = 8;\n for (var i = 0; i < 24; ++i, grey_level += 10) {\n var gry = { rgb: [grey_level, grey_level, grey_level], class_name: 'truecolor' };\n this.palette_256.push(gry);\n }\n };\n AnsiUp.prototype.escape_txt_for_html = function (txt) {\n return txt.replace(/[&<>\"']/gm, function (str) {\n if (str === \"&\")\n return \"&amp;\";\n if (str === \"<\")\n return \"&lt;\";\n if (str === \">\")\n return \"&gt;\";\n if (str === \"\\\"\")\n return \"&quot;\";\n if (str === \"'\")\n return \"&#x27;\";\n });\n };\n AnsiUp.prototype.append_buffer = function (txt) {\n var str = this._buffer + txt;\n this._buffer = str;\n };\n AnsiUp.prototype.get_next_packet = function () {\n var pkt = {\n kind: PacketKind.EOS,\n text: '',\n url: ''\n };\n var len = this._buffer.length;\n if (len == 0)\n return pkt;\n var pos = this._buffer.indexOf(\"\\x1B\");\n if (pos == -1) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer;\n this._buffer = '';\n return pkt;\n }\n if (pos > 0) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer.slice(0, pos);\n this._buffer = this._buffer.slice(pos);\n return pkt;\n }\n if (pos == 0) {\n if (len == 1) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n var next_char = this._buffer.charAt(1);\n if ((next_char != '[') && (next_char != ']')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (next_char == '[') {\n if (!this._csi_regex) {\n this._csi_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\u001B[ # CSI\\n ([<-?]?) # private-mode char\\n ([d;]*) # any digits or semicolons\\n ([ -/]? # an intermediate modifier\\n [@-~]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\u001B[ # CSI\\n [ -~]* # anything legal\\n ([\\0-\\u001F:]) # anything illegal\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\\\x1b\\\\[ # CSI\\n ([\\\\x3c-\\\\x3f]?) # private-mode char\\n ([\\\\d;]*) # any digits or semicolons\\n ([\\\\x20-\\\\x2f]? # an intermediate modifier\\n [\\\\x40-\\\\x7e]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\\\x1b\\\\[ # CSI\\n [\\\\x20-\\\\x7e]* # anything legal\\n ([\\\\x00-\\\\x1f:]) # anything illegal\\n )\\n \"]));\n }\n var match = this._buffer.match(this._csi_regex);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[4]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if ((match[1] != '') || (match[3] != 'm'))\n pkt.kind = PacketKind.Unknown;\n else\n pkt.kind = PacketKind.SGR;\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n if (next_char == ']') {\n if (len < 4) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if ((this._buffer.charAt(2) != '8')\n || (this._buffer.charAt(3) != ';')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (!this._osc_st) {\n this._osc_st = rgxG(__makeTemplateObject([\"\\n (?: # legal sequence\\n (\\u001B\\\\) # ESC | # alternate\\n (\\u0007) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\0-\\u0006] # anything illegal\\n | # alternate\\n [\\b-\\u001A] # anything illegal\\n | # alternate\\n [\\u001C-\\u001F] # anything illegal\\n )\\n \"], [\"\\n (?: # legal sequence\\n (\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (\\\\x07) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\\\x00-\\\\x06] # anything illegal\\n | # alternate\\n [\\\\x08-\\\\x1a] # anything illegal\\n | # alternate\\n [\\\\x1c-\\\\x1f] # anything illegal\\n )\\n \"]));\n }\n this._osc_st.lastIndex = 0;\n {\n var match_1 = this._osc_st.exec(this._buffer);\n if (match_1 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_1[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n {\n var match_2 = this._osc_st.exec(this._buffer);\n if (match_2 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_2[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n if (!this._osc_regex) {\n this._osc_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n \\u001B]8; # OSC Hyperlink\\n [ -:<-~]* # params (excluding ;)\\n ; # end of params\\n ([!-~]{0,512}) # URL capture\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n ([ -~]+) # TEXT capture\\n \\u001B]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n \\\\x1b\\\\]8; # OSC Hyperlink\\n [\\\\x20-\\\\x3a\\\\x3c-\\\\x7e]* # params (excluding ;)\\n ; # end of params\\n ([\\\\x21-\\\\x7e]{0,512}) # URL capture\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n ([\\\\x20-\\\\x7e]+) # TEXT capture\\n \\\\x1b\\\\]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n \"]));\n }\n var match = this._buffer.match(this._osc_regex);\n if (match === null) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n pkt.kind = PacketKind.OSCURL;\n pkt.url = match[1];\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n }\n };\n AnsiUp.prototype.ansi_to_html = function (txt) {\n this.append_buffer(txt);\n var blocks = [];\n while (true) {\n var packet = this.get_next_packet();\n if ((packet.kind == PacketKind.EOS)\n || (packet.kind == PacketKind.Incomplete))\n break;\n if ((packet.kind == PacketKind.ESC)\n || (packet.kind == PacketKind.Unknown))\n continue;\n if (packet.kind == PacketKind.Text)\n blocks.push(this.transform_to_html(this.with_state(packet)));\n else if (packet.kind == PacketKind.SGR)\n this.process_ansi(packet);\n else if (packet.kind == PacketKind.OSCURL)\n blocks.push(this.process_hyperlink(packet));\n }\n return blocks.join(\"\");\n };\n AnsiUp.prototype.with_state = function (pkt) {\n return { bold: this.bold, italic: this.italic, underline: this.underline, fg: this.fg, bg: this.bg, text: pkt.text };\n };\n AnsiUp.prototype.process_ansi = function (pkt) {\n var sgr_cmds = pkt.text.split(';');\n while (sgr_cmds.length > 0) {\n var sgr_cmd_str = sgr_cmds.shift();\n var num = parseInt(sgr_cmd_str, 10);\n if (isNaN(num) || num === 0) {\n this.fg = this.bg = null;\n this.bold = false;\n this.italic = false;\n this.underline = false;\n }\n else if (num === 1) {\n this.bold = true;\n }\n else if (num === 3) {\n this.italic = true;\n }\n else if (num === 4) {\n this.underline = true;\n }\n else if (num === 22) {\n this.bold = false;\n }\n else if (num === 23) {\n this.italic = false;\n }\n else if (num === 24) {\n this.underline = false;\n }\n else if (num === 39) {\n this.fg = null;\n }\n else if (num === 49) {\n this.bg = null;\n }\n else if ((num >= 30) && (num < 38)) {\n this.fg = this.ansi_colors[0][(num - 30)];\n }\n else if ((num >= 40) && (num < 48)) {\n this.bg = this.ansi_colors[0][(num - 40)];\n }\n else if ((num >= 90) && (num < 98)) {\n this.fg = this.ansi_colors[1][(num - 90)];\n }\n else if ((num >= 100) && (num < 108)) {\n this.bg = this.ansi_colors[1][(num - 100)];\n }\n else if (num === 38 || num === 48) {\n if (sgr_cmds.length > 0) {\n var is_foreground = (num === 38);\n var mode_cmd = sgr_cmds.shift();\n if (mode_cmd === '5' && sgr_cmds.length > 0) {\n var palette_index = parseInt(sgr_cmds.shift(), 10);\n if (palette_index >= 0 && palette_index <= 255) {\n if (is_foreground)\n this.fg = this.palette_256[palette_index];\n else\n this.bg = this.palette_256[palette_index];\n }\n }\n if (mode_cmd === '2' && sgr_cmds.length > 2) {\n var r = parseInt(sgr_cmds.shift(), 10);\n var g = parseInt(sgr_cmds.shift(), 10);\n var b = parseInt(sgr_cmds.shift(), 10);\n if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {\n var c = { rgb: [r, g, b], class_name: 'truecolor' };\n if (is_foreground)\n this.fg = c;\n else\n this.bg = c;\n }\n }\n }\n }\n }\n };\n AnsiUp.prototype.transform_to_html = function (fragment) {\n var txt = fragment.text;\n if (txt.length === 0)\n return txt;\n txt = this.escape_txt_for_html(txt);\n if (!fragment.bold && !fragment.italic && !fragment.underline && fragment.fg === null && fragment.bg === null)\n return txt;\n var styles = [];\n var classes = [];\n var fg = fragment.fg;\n var bg = fragment.bg;\n if (fragment.bold)\n styles.push('font-weight:bold');\n if (fragment.italic)\n styles.push('font-style:italic');\n if (fragment.underline)\n styles.push('text-decoration:underline');\n if (!this._use_classes) {\n if (fg)\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n if (bg)\n styles.push(\"background-color:rgb(\" + bg.rgb + \")\");\n }\n else {\n if (fg) {\n if (fg.class_name !== 'truecolor') {\n classes.push(fg.class_name + \"-fg\");\n }\n else {\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n }\n }\n if (bg) {\n if (bg.class_name !== 'truecolor') {\n classes.push(bg.class_name + \"-bg\");\n }\n else {\n styles.push(\"background-color:rgb(\" + bg.rgb.join(',') + \")\");\n }\n }\n }\n var class_string = '';\n var style_string = '';\n if (classes.length)\n class_string = \" class=\\\"\" + classes.join(' ') + \"\\\"\";\n if (styles.length)\n style_string = \" style=\\\"\" + styles.join(';') + \"\\\"\";\n return \"<span\" + style_string + class_string + \">\" + txt + \"</span>\";\n };\n ;\n AnsiUp.prototype.process_hyperlink = function (pkt) {\n var parts = pkt.url.split(':');\n if (parts.length < 1)\n return '';\n if (!this._url_whitelist[parts[0]])\n return '';\n var result = \"<a href=\\\"\" + this.escape_txt_for_html(pkt.url) + \"\\\">\" + this.escape_txt_for_html(pkt.text) + \"</a>\";\n return result;\n };\n return AnsiUp;\n}());\nfunction rgx(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2);\n}\nfunction rgxG(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2, 'g');\n}\n//# sourceMappingURL=ansi_up.js.map\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = AnsiUp;\n}));\n",
"/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n",
"/**\n * Copyright (C) 2018-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length));\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function validateUrl(url, allowedProtocols = []) {\n let originUrl = null;\n let validUrl = true;\n\n try {\n originUrl = new URL(url);\n } catch (TypeError) {\n validUrl = false;\n }\n\n if (validUrl && allowedProtocols.length) {\n validUrl = (\n allowedProtocols.find(protocol => protocol === originUrl.protocol) !== undefined\n );\n }\n\n return validUrl ? originUrl : null;\n}\n\nexport async function isArchivedOrigin(originPath) {\n if (!validateUrl(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n const response = await fetch(Urls.api_1_origin(originPath));\n return response.ok && response.status === 200; // Success response represents an archived origin\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?<owner>[^/]+).github.io\\/(?<repo>[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n\nexport function genLink(sanitizedUrl, type, openInNewTab = false, linkText = '') {\n // Display link. It's up to the caller to sanitize sanitizedUrl first.\n if (type === 'display' && sanitizedUrl) {\n const encodedSanitizedUrl = encodeURI(sanitizedUrl);\n if (!linkText) {\n linkText = encodedSanitizedUrl;\n }\n let attrs = '';\n if (openInNewTab) {\n attrs = 'target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return `<a href=\"${encodedSanitizedUrl}\" ${attrs}>${linkText}</a>`;\n }\n return sanitizedUrl;\n}\n",
"/**\n * Copyright (C) 2019-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function showBadgeInfoModal(objectType, objectSWHID) {\n let badgeImageUrl;\n let badgeLinkUrl;\n if (objectType === 'origin') {\n badgeImageUrl = Urls.swh_badge(objectType, objectSWHID);\n badgeLinkUrl = `${Urls.browse_origin()}?origin_url=${objectSWHID}`;\n } else {\n const pos = objectSWHID.indexOf(';');\n if (pos !== -1) {\n const objectSWHIDNoContext = objectSWHID.slice(0, pos);\n badgeImageUrl = Urls.swh_badge_swhid(objectSWHIDNoContext);\n $('.swhid').each((i, swhid) => {\n if (swhid.id === objectSWHIDNoContext) {\n badgeLinkUrl = swhid.pathname;\n }\n });\n } else {\n badgeImageUrl = Urls.swh_badge_swhid(objectSWHID);\n badgeLinkUrl = Urls.browse_swhid(objectSWHID);\n }\n }\n const absoluteBadgeImageUrl = `${window.location.origin}${badgeImageUrl}`;\n const absoluteBadgeLinkUrl = `${window.location.origin}${badgeLinkUrl}`;\n const html = `\n <a href=\"${absoluteBadgeLinkUrl}\">\n <img class=\"swh-badge\" src=\"${absoluteBadgeImageUrl}\">\n </a>\n <div>\n <label>HTML</label>\n <pre><code class=\"swh-badge-html html\">&lt;a href=\"${absoluteBadgeLinkUrl}\"&gt;\n &lt;img src=\"${absoluteBadgeImageUrl}\"&gt;\n&lt;/a&gt;</code></pre>\n </div>\n <div>\n <label>Markdown</label>\n <pre><code class=\"swh-badge-md markdown\">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</code></pre>\n </div>\n <div>\n <label>reStructuredText</label>\n <pre class=\"swh-badge-rst\">.. image:: ${absoluteBadgeImageUrl}\n :target: ${absoluteBadgeLinkUrl}</pre>\n </div>`;\n swh.webapp.showModalHtml('Software Heritage badge integration', html);\n swh.webapp.highlightCode(false, '.swh-badge-html');\n swh.webapp.highlightCode(false, '.swh-badge-md');\n}\n",
"/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {removeUrlFragment} from 'utils/functions';\n\n// keep track of the first highlighted line\nlet firstHighlightedLine = null;\n// highlighting color\nconst lineHighlightColor = 'rgb(193, 255, 193)';\n\n// function to highlight a line\nexport function highlightLine(i, firstHighlighted = false) {\n const lineTd = $(`.hljs-ln-line[data-line-number=\"${i}\"]`);\n lineTd.css('background-color', lineHighlightColor);\n if (firstHighlighted) {\n firstHighlightedLine = i;\n }\n return lineTd;\n}\n\n// function to highlight a range of lines\nexport function highlightLines(first, last) {\n if (!first) {\n return;\n }\n if (!last) {\n last = first;\n }\n for (let i = first; i <= last; ++i) {\n highlightLine(i);\n }\n}\n\n// function to reset highlighting\nexport function resetHighlightedLines() {\n firstHighlightedLine = null;\n $('.hljs-ln-line[data-line-number]').css('background-color', 'inherit');\n}\n\nexport function scrollToLine(lineDomElt, offset = 70) {\n if ($(lineDomElt).closest('.swh-content').length > 0) {\n $('html, body').animate({\n scrollTop: $(lineDomElt).offset().top - offset\n }, 500);\n }\n}\n\nexport async function highlightCode(showLineNumbers = true, selector = 'code',\n enableLinesSelection = true) {\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // function to highlight lines based on a url fragment\n // in the form '#Lx' or '#Lx-Ly'\n function parseUrlFragmentForLinesToHighlight() {\n const lines = [];\n const linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n if (line === null) {\n return;\n }\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n resetHighlightedLines();\n if (lines.length === 1) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n } else if (lines[0] < lines[lines.length - 1]) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n highlightLines(lines[0] + 1, lines[lines.length - 1]);\n }\n }\n\n $(document).ready(() => {\n // highlight code and add line numbers\n $(selector).each((i, elt) => {\n hljs.highlightElement(elt);\n if (showLineNumbers) {\n hljs.lineNumbersElement(elt, {singleLine: true});\n }\n });\n\n if (!showLineNumbers || !enableLinesSelection) {\n return;\n }\n\n // click handler to dynamically highlight line(s)\n // when the user clicks on a line number (lines range\n // can also be highlighted while holding the shift key)\n $('.swh-content').click(evt => {\n if (evt.target.classList.contains('hljs-ln-n')) {\n const line = parseInt($(evt.target).data('line-number'));\n if (evt.shiftKey && firstHighlightedLine && line > firstHighlightedLine) {\n const firstLine = firstHighlightedLine;\n resetHighlightedLines();\n highlightLines(firstLine, line);\n firstHighlightedLine = firstLine;\n window.location.hash = `#L${firstLine}-L${line}`;\n } else {\n resetHighlightedLines();\n highlightLine(line);\n window.location.hash = `#L${line}`;\n scrollToLine(evt.target);\n }\n } else if ($(evt.target).closest('.hljs-ln').length) {\n resetHighlightedLines();\n removeUrlFragment();\n }\n });\n\n // update lines highlighting when the url fragment changes\n $(window).on('hashchange', () => parseUrlFragmentForLinesToHighlight());\n\n // schedule lines highlighting if any as hljs.lineNumbersElement() is async\n setTimeout(() => {\n parseUrlFragmentForLinesToHighlight();\n });\n\n });\n}\n",
"/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './history-counters.css';\n\nexport async function drawHistoryCounterGraph(container, historyData) {\n\n const d3 = await import(/* webpackChunkName: \"d3\" */ 'utils/d3');\n\n // remove previously created histogram and tooltip if any\n d3.select(container).select('svg').remove();\n d3.select(`${container}-tooltip`).remove();\n\n // histogram size and margins\n let width = 400;\n let height = 300;\n const margin = {top: 20, right: 50, bottom: 70, left: 30};\n\n // create responsive svg\n const svg = d3.select(container)\n .attr('style',\n `padding-bottom: ${Math.ceil(height * 100 / width)}%`)\n .append('svg')\n .attr('viewBox', `0 0 ${width} ${height}`);\n\n // create tooltip div\n const tooltip = d3.select('body')\n .append('div')\n .attr('class', 'd3-tooltip')\n .attr('id', `${container}-tooltip`)\n .style('opacity', 0);\n\n // update width and height without margins\n width = width - margin.left - margin.right;\n height = height - margin.top - margin.bottom;\n\n // Make sure data points are sorted, by x coordinate then y coordinate.\n historyData.sort(function(a, b) {\n return a[0] - b[0] !== 0 ? a[0] - b[0] : a[1] - b[1];\n });\n\n const firstPoint = historyData[0];\n const lastPoint = historyData[historyData.length - 1];\n\n // create main svg group element\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // create x scale\n const xScale = d3.scaleTime()\n .rangeRound([0, width])\n .domain([firstPoint[0], lastPoint[0]])\n .nice();\n\n // create y scale\n const yScale = d3.scaleLinear()\n .range([height, 0])\n .domain([firstPoint[1], lastPoint[1]])\n .nice();\n\n // create line generator\n const line = d3.line()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]));\n\n // utility functions\n const dateFormatter = d3.timeFormat('%d %b %Y');\n const valueFormatter = (v) => {\n return d3.format('.3s')(v).replace(/G/, 'B');\n };\n const bisectDate = d3.bisector(d => d[0]).left;\n\n // add x axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(0, ${height})`)\n .call(\n d3.axisBottom(xScale)\n .ticks(10)\n .tickFormat(dateFormatter)\n )\n .selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-65)');\n\n // add y axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(${width}, 0)`)\n .call(\n d3.axisRight(yScale)\n .ticks(10)\n .tickFormat(valueFormatter)\n );\n\n // add data plot\n g.append('path')\n .datum(historyData)\n .attr('class', 'swh-history-counter-line')\n .attr('d', line);\n\n // add tooltip\n const focus = g.append('g')\n .attr('class', 'swh-history-counter-focus')\n .style('display', 'none');\n\n focus.append('circle')\n .attr('r', 8);\n\n g.append('rect')\n .attr('class', 'swh-history-counter-overlay')\n .attr('width', width)\n .attr('height', height)\n .on('mouseover', function(event) {\n focus.style('display', null);\n updateTooltip(event);\n tooltip.transition()\n .duration(200)\n .style('opacity', 1);\n })\n .on('mouseout', () => {\n focus.style('display', 'none');\n tooltip.transition()\n .duration(200)\n .style('opacity', 0);\n })\n .on('mousemove', function(event) {\n updateTooltip(event);\n });\n\n function updateTooltip(event) {\n const x0 = xScale.invert(d3.pointer(event)[0]);\n const i = bisectDate(historyData, x0, 1);\n if (i >= historyData.length) return;\n const d0 = historyData[i - 1];\n const d1 = historyData[i];\n const d = x0 - d0[0] > d1[0] - x0 ? d1 : d0;\n focus.attr('transform', `translate(${xScale(d[0])}, ${yScale(d[1])})`);\n const tooltipText = `${dateFormatter(d[0])} ${valueFormatter(d[1])}`;\n tooltip.html(tooltipText)\n .style('left', event.pageX + 15 + 'px')\n .style('top', event.pageY + 'px');\n }\n}\n",
"/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function typesetMath() {\n\n window.MathJax = {\n chtml: {\n fontURL: staticAsset('fonts/')\n },\n tex: {\n tags: 'ams',\n useLabelIds: true,\n inlineMath: [ ['$', '$'], ['\\\\(', '\\\\)'] ],\n displayMath: [ ['$$', '$$'], ['\\\\[', '\\\\]'] ],\n processEscapes: true,\n processEnvironments: true\n }\n };\n\n await import(/* webpackChunkName: \"mathjax\" */ 'utils/mathjax');\n}\n",
"/**\n * Copyright (C) 2019-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport 'script-loader!notebookjs';\nimport AnsiUp from 'ansi_up';\nimport './notebook.css';\n\nconst ansiup = new AnsiUp();\nansiup.escape_for_html = false;\n\nfunction escapeHTML(text) {\n text = text.replace(/</g, '&lt;');\n text = text.replace(/>/g, '&gt;');\n return text;\n}\n\nfunction unescapeHTML(text) {\n text = text.replace(/&lt;/g, '<');\n text = text.replace(/&gt;/g, '>');\n return text;\n}\n\nfunction escapeLaTeX(text) {\n\n const blockMath = /\\$\\$(.+?)\\$\\$|\\\\\\\\\\[(.+?)\\\\\\\\\\]/msg;\n const inlineMath = /\\$(.+?)\\$|\\\\\\\\\\((.+?)\\\\\\\\\\)/g;\n const latexEnvironment = /\\\\begin\\{([a-z]*\\*?)\\}(.+?)\\\\end\\{\\1\\}/msg;\n\n const mathTextFound = [];\n let bm;\n while ((bm = blockMath.exec(text)) !== null) {\n mathTextFound.push(bm[1]);\n }\n\n let im;\n while ((im = inlineMath.exec(text)) !== null) {\n mathTextFound.push(im[1]);\n }\n\n let le;\n while ((le = latexEnvironment.exec(text)) !== null) {\n mathTextFound.push(le[1]);\n }\n\n for (const mathText of mathTextFound) {\n // showdown will remove line breaks in LaTex array and\n // some escaping sequences when converting md to html.\n // So we use the following escaping hacks to keep them in the html\n // output and avoid MathJax typesetting errors.\n let escapedText = mathText.replace('\\\\\\\\', '\\\\\\\\\\\\\\\\');\n for (const specialLaTexChar of ['{', '}', '#', '%', '&', '_']) {\n escapedText = escapedText.replace(new RegExp(`\\\\\\\\${specialLaTexChar}`, 'g'),\n `\\\\\\\\${specialLaTexChar}`);\n }\n\n // some html escaping is also needed\n escapedText = escapeHTML(escapedText);\n\n // hack to prevent showdown to replace _ characters\n // by html em tags as it will break some math typesetting\n // (setting the literalMidWordUnderscores option is not\n // enough as iy only works for _ characters contained in words)\n escapedText = escapedText.replace(/_/g, '{@}underscore{@}');\n\n if (mathText !== escapedText) {\n text = text.replace(mathText, escapedText);\n }\n }\n\n return text;\n}\n\nexport async function renderNotebook(nbJsonUrl, domElt) {\n\n const showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n function renderMarkdown(text) {\n const converter = new showdown.Converter({\n tables: true,\n simplifiedAutoLink: true,\n rawHeaderId: true,\n literalMidWordUnderscores: true\n });\n\n // some LaTeX escaping is required to get correct math typesetting\n text = escapeLaTeX(text);\n\n // render markdown\n let rendered = converter.makeHtml(text);\n\n // restore underscores in rendered HTML (see escapeLaTeX function)\n rendered = rendered.replace(/{@}underscore{@}/g, '_');\n\n return rendered;\n }\n\n function highlightCode(text, preElt, codeElt, lang) {\n // no need to unescape text processed by ansiup\n if (text.indexOf('<span style=\"color:rgb(') === -1) {\n text = unescapeHTML(text);\n }\n if (lang && hljs.getLanguage(lang)) {\n return hljs.highlight(text, {language: lang}).value;\n } else {\n return text;\n }\n }\n\n function renderAnsi(text) {\n return ansiup.ansi_to_html(text);\n }\n\n nb.markdown = renderMarkdown;\n nb.highlighter = highlightCode;\n nb.ansi = renderAnsi;\n\n const response = await fetch(nbJsonUrl);\n const nbJson = await response.json();\n\n // parse the notebook\n const notebook = nb.parse(nbJson);\n // render it to HTML and apply XSS filtering\n const rendered = swh.webapp.filterXSS(notebook.render());\n // insert rendered notebook in the DOM\n $(domElt).append(rendered);\n // set light red background color for stderr output cells\n $('pre.nb-stderr').parent().css('background', '#fdd');\n // load MathJax library for math typesetting\n swh.webapp.typesetMath();\n}\n",
"/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// adapted from pdf.js examples located at http://mozilla.github.io/pdf.js/examples/\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function renderPdf(pdfUrl) {\n\n let pdfDoc = null;\n let pageNum = 1;\n let pageRendering = false;\n let pageNumPending = null;\n const defaultScale = 1.5;\n const canvas = $('#pdf-canvas')[0];\n const ctx = canvas.getContext('2d');\n\n // Get page info from document, resize canvas accordingly, and render page.\n async function renderPage(num) {\n pageRendering = true;\n // Using promise to fetch the page\n const page = await pdfDoc.getPage(num);\n\n const divWidth = $('.swh-content').width();\n const scale = Math.min(defaultScale, divWidth / page.getViewport({scale: 1.0}).width);\n\n const viewport = page.getViewport({scale: scale});\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: ctx,\n viewport: viewport\n };\n\n // Wait for rendering to finish\n await page.render(renderContext);\n\n pageRendering = false;\n if (pageNumPending !== null) {\n // New page rendering is pending\n renderPage(pageNumPending);\n pageNumPending = null;\n }\n\n // Update page counters\n $('#pdf-page-num').text(num);\n }\n\n // If another page rendering in progress, waits until the rendering is\n // finished. Otherwise, executes rendering immediately.\n function queueRenderPage(num) {\n if (pageRendering) {\n pageNumPending = num;\n } else {\n renderPage(num);\n }\n }\n\n // Displays previous page.\n function onPrevPage() {\n if (pageNum <= 1) {\n return;\n }\n pageNum--;\n queueRenderPage(pageNum);\n }\n\n // Displays next page.\n function onNextPage() {\n if (pageNum >= pdfDoc.numPages) {\n return;\n }\n pageNum++;\n queueRenderPage(pageNum);\n }\n\n const pdfjs = await import(/* webpackChunkName: \"pdfjs\" */ 'pdfjs-dist');\n\n pdfjs.GlobalWorkerOptions.workerSrc = staticAsset('js/pdf.worker.min.js');\n\n $(document).ready(async() => {\n $('#pdf-prev').click(onPrevPage);\n $('#pdf-next').click(onNextPage);\n try {\n const pdf = await pdfjs.getDocument(pdfUrl).promise;\n pdfDoc = pdf;\n $('#pdf-page-count').text(pdfDoc.numPages);\n // Initial/first page rendering\n renderPage(pageNum);\n } catch (reason) {\n // PDF loading error\n console.error(reason);\n }\n\n // Render PDF on resize\n $(window).on('resize', function() {\n queueRenderPage(pageNum);\n });\n });\n\n}\n",
"/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\n\nimport {decode} from 'html-encoder-decoder';\n\nexport async function renderMarkdown(domElt, markdownDocUrl) {\n\n const showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // Adapted from https://github.com/Bloggify/showdown-highlight\n // Copyright (c) 2016-19 Bloggify <support@bloggify.org> (https://bloggify.org)\n function showdownHighlight() {\n return [{\n type: 'output',\n filter: function(text, converter, options) {\n const left = '<pre><code\\\\b[^>]*>';\n const right = '</code></pre>';\n const flags = 'g';\n const classAttr = 'class=\"';\n const replacement = (wholeMatch, match, left, right) => {\n match = decode(match);\n const lang = (left.match(/class=\"([^ \"]+)/) || [])[1];\n\n if (left.includes(classAttr)) {\n const attrIndex = left.indexOf(classAttr) + classAttr.length;\n left = left.slice(0, attrIndex) + 'hljs ' + left.slice(attrIndex);\n } else {\n left = left.slice(0, -1) + ' class=\"hljs\">';\n }\n\n if (lang && hljs.getLanguage(lang)) {\n return left + hljs.highlight(match, {language: lang}).value + right;\n } else {\n return left + match + right;\n }\n };\n\n return showdown.helper.replaceRecursiveRegExp(text, replacement, left, right, flags);\n }\n }];\n }\n\n $(document).ready(async() => {\n const converter = new showdown.Converter({\n tables: true,\n extensions: [showdownHighlight]\n });\n const url = new URL(window.location.href);\n if (url.searchParams.has('origin_url')) {\n try {\n const originUrl = new URL(url.searchParams.get('origin_url'));\n if (originUrl.hostname === 'github.com') {\n converter.setFlavor('github');\n }\n } catch (TypeError) {}\n }\n\n try {\n const response = await fetch(markdownDocUrl);\n handleFetchError(response);\n const data = await response.text();\n $(domElt).addClass('swh-showdown');\n $(domElt).html(swh.webapp.filterXSS(converter.makeHtml(data)));\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n\n}\n\nexport async function renderOrgData(domElt, orgDocData) {\n\n const org = await import(/* webpackChunkName: \"org\" */ 'utils/org');\n\n const parser = new org.Parser();\n const orgDocument = parser.parse(orgDocData, {toc: false});\n const orgHTMLDocument = orgDocument.convert(org.ConverterHTML, {});\n $(domElt).addClass('swh-org');\n $(domElt).html(swh.webapp.filterXSS(orgHTMLDocument.toString()));\n // remove toc and section numbers to get consistent\n // with other readme renderings\n $('.swh-org ul').first().remove();\n $('.section-number').remove();\n\n}\n\nexport function renderOrg(domElt, orgDocUrl) {\n $(document).ready(async() => {\n try {\n const response = await fetch(orgDocUrl);\n handleFetchError(response);\n const data = await response.text();\n renderOrgData(domElt, data);\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n}\n\nexport function renderTxt(domElt, txtDocUrl) {\n $(document).ready(async() => {\n try {\n const response = await fetch(txtDocUrl);\n handleFetchError(response);\n const data = await response.text();\n\n const orgMode = '-*- mode: org -*-';\n if (data.indexOf(orgMode) !== -1) {\n renderOrgData(domElt, data.replace(orgMode, ''));\n } else {\n $(domElt).addClass('swh-readme-txt');\n $(domElt)\n .html('')\n .append($('<pre></pre>').text(data));\n }\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n}\n",
"/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport * as Sentry from '@sentry/browser';\n\n// Called by a <script> object in the header, after the configuration is\n// loaded.\nexport function sentryInit(sentryDsn) {\n if (sentryDsn !== undefined) {\n Sentry.init({dsn: sentryDsn});\n }\n}\n\n// May be used in other scripts to report exceptions.\nexport function sentryCaptureException(exc) {\n Sentry.captureException(exc);\n}\n",
"/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './status-widget.css';\n\nconst statusCodeColor = {\n '100': 'green', // Operational\n '200': 'blue', // Scheduled Maintenance\n '300': 'yellow', // Degraded Performance\n '400': 'yellow', // Partial Service Disruption\n '500': 'red', // Service Disruption\n '600': 'red' // Security Event\n};\n\nexport function initStatusWidget(statusDataURL) {\n $('.swh-current-status-indicator').ready(async() => {\n let maxStatusCode = '';\n let maxStatusDescription = '';\n let sc = '';\n let sd = '';\n try {\n const response = await fetch(statusDataURL);\n const data = await response.json();\n\n for (const s of data.result.status) {\n sc = s.status_code;\n sd = s.status;\n if (maxStatusCode < sc) {\n maxStatusCode = sc;\n maxStatusDescription = sd;\n }\n }\n if (maxStatusCode === '') {\n $('.swh-current-status').remove();\n return;\n }\n $('.swh-current-status-indicator').removeClass('green');\n $('.swh-current-status-indicator').addClass(statusCodeColor[maxStatusCode]);\n $('#swh-current-status-description').text(maxStatusDescription);\n\n } catch (e) {\n console.log(e);\n $('.swh-current-status').remove();\n }\n });\n}\n",
"/**\n * Copyright (C) 2018-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport objectFitImages from 'object-fit-images';\nimport {selectText} from 'utils/functions';\nimport {BREAKPOINT_MD} from 'utils/constants';\nimport Cookies from 'js-cookie';\n\n$(document).on('collapsed.lte.pushmenu', event => {\n if ($('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n});\n\n$(document).on('shown.lte.pushmenu', event => {\n $('.swh-words-logo-swh').css('visibility', 'hidden');\n});\n\nfunction ensureNoFooterOverflow() {\n $('body').css('padding-bottom', $('footer').outerHeight() + 'px');\n}\n\n$(document).ready(() => {\n // redirect to last browse page if any when clicking on the 'Browse' entry\n // in the sidebar\n $(`.swh-browse-link`).click(event => {\n const lastBrowsePage = sessionStorage.getItem('last-browse-page');\n if (lastBrowsePage) {\n event.preventDefault();\n window.location = lastBrowsePage;\n }\n });\n\n const mainSideBar = $('.main-sidebar');\n\n function updateSidebarState() {\n const body = $('body');\n if (body.hasClass('sidebar-collapse') &&\n !mainSideBar.hasClass('swh-sidebar-collapsed')) {\n mainSideBar.removeClass('swh-sidebar-expanded');\n mainSideBar.addClass('swh-sidebar-collapsed');\n $('.swh-words-logo-swh').css('visibility', 'visible');\n Cookies.set('sidebar-state', 'collapsed');\n } else if (!body.hasClass('sidebar-collapse') &&\n !mainSideBar.hasClass('swh-sidebar-expanded')) {\n mainSideBar.removeClass('swh-sidebar-collapsed');\n mainSideBar.addClass('swh-sidebar-expanded');\n $('.swh-words-logo-swh').css('visibility', 'hidden');\n Cookies.set('sidebar-state', 'expanded');\n }\n // ensure correct sidebar state when loading a page\n if (body.hasClass('hold-transition')) {\n setTimeout(() => {\n updateSidebarState();\n });\n }\n }\n\n // set sidebar state after collapse / expand animation\n mainSideBar.on('transitionend', evt => {\n updateSidebarState();\n });\n\n updateSidebarState();\n\n // ensure footer do not overflow main content for mobile devices\n // or after resizing the browser window\n ensureNoFooterOverflow();\n $(window).resize(function() {\n ensureNoFooterOverflow();\n if ($('body').hasClass('sidebar-collapse') && $('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n });\n // activate css polyfill 'object-fit: contain' in old browsers\n objectFitImages();\n\n // reparent the modals to the top navigation div in order to be able\n // to display them\n $('.swh-browse-top-navigation').append($('.modal'));\n\n let selectedCode = null;\n\n function getCodeOrPreEltUnderPointer(e) {\n if (e.clientX && e.clientY) {\n const elts = document.elementsFromPoint(e.clientX, e.clientY);\n for (const elt of elts) {\n if (elt.nodeName === 'CODE' || elt.nodeName === 'PRE') {\n return elt;\n }\n }\n }\n return null;\n }\n\n // click handler to set focus on code block for copy\n $(document).click(e => {\n selectedCode = getCodeOrPreEltUnderPointer(e);\n });\n\n function selectCode(event, selectedCode) {\n if (selectedCode) {\n const hljsLnCodeElts = $(selectedCode).find('.hljs-ln-code');\n if (hljsLnCodeElts.length) {\n selectText(hljsLnCodeElts[0], hljsLnCodeElts[hljsLnCodeElts.length - 1]);\n } else {\n selectText(selectedCode.firstChild, selectedCode.lastChild);\n }\n event.preventDefault();\n }\n }\n\n // select the whole text of focused code block when user\n // double clicks or hits Ctrl+A\n $(document).dblclick(e => {\n if ((e.ctrlKey || e.metaKey)) {\n selectCode(e, getCodeOrPreEltUnderPointer(e));\n }\n });\n\n $(document).keydown(e => {\n if ((e.ctrlKey || e.metaKey) && e.key === 'a') {\n selectCode(e, selectedCode);\n }\n });\n\n // show/hide back-to-top button\n let scrollThreshold = 0;\n scrollThreshold += $('.swh-top-bar').height() || 0;\n scrollThreshold += $('.navbar').height() || 0;\n $(window).scroll(() => {\n if ($(window).scrollTop() > scrollThreshold) {\n $('#back-to-top').css('display', 'block');\n } else {\n $('#back-to-top').css('display', 'none');\n }\n });\n\n // navbar search form submission callback\n $('#swh-origins-search-top').submit(event => {\n event.preventDefault();\n if (event.target.checkValidity()) {\n $(event.target).removeClass('was-validated');\n const searchQueryText = $('#swh-origins-search-top-input').val().trim();\n const queryParameters = new URLSearchParams();\n queryParameters.append('q', searchQueryText);\n queryParameters.append('with_visit', true);\n queryParameters.append('with_content', true);\n window.location = `${Urls.browse_search()}?${queryParameters.toString()}`;\n } else {\n $(event.target).addClass('was-validated');\n }\n });\n});\n\nexport function initPage(page) {\n\n $(document).ready(() => {\n // set relevant sidebar link to page active\n $(`.swh-${page}-item`).addClass('active');\n $(`.swh-${page}-link`).addClass('active');\n\n // triggered when unloading the current page\n $(window).on('unload', () => {\n // backup current browse page\n if (page === 'browse') {\n sessionStorage.setItem('last-browse-page', window.location);\n }\n });\n });\n}\n\nexport function initHomePage() {\n $(document).ready(async() => {\n $('.swh-coverage-iframe').iFrameResize({heightCalculationMethod: 'taggedElement'});\n const response = await fetch(Urls.stat_counters());\n const data = await response.json();\n\n if (data.stat_counters && !$.isEmptyObject(data.stat_counters)) {\n for (const objectType of ['content', 'revision', 'origin', 'directory', 'person', 'release']) {\n const count = data.stat_counters[objectType];\n if (count !== undefined) {\n $(`#swh-${objectType}-count`).html(count.toLocaleString());\n } else {\n $(`#swh-${objectType}-count`).closest('.swh-counter-container').hide();\n }\n }\n } else {\n $('.swh-counter').html('0');\n }\n if (data.stat_counters_history && !$.isEmptyObject(data.stat_counters_history)) {\n for (const objectType of ['content', 'revision', 'origin']) {\n const history = data.stat_counters_history[objectType];\n if (history) {\n swh.webapp.drawHistoryCounterGraph(`#swh-${objectType}-count-history`, history);\n } else {\n $(`#swh-${objectType}-count-history`).hide();\n }\n\n }\n } else {\n $('.swh-counter-history').hide();\n }\n });\n initPage('home');\n}\n\nexport function showModalMessage(title, message) {\n $('#swh-web-modal-message .modal-title').text(title);\n $('#swh-web-modal-message .modal-content p').text(message);\n $('#swh-web-modal-message').modal('show');\n}\n\nexport function showModalConfirm(title, message, callback) {\n $('#swh-web-modal-confirm .modal-title').text(title);\n $('#swh-web-modal-confirm .modal-content p').text(message);\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').bind('click', () => {\n callback();\n $('#swh-web-modal-confirm').modal('hide');\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').unbind('click');\n });\n $('#swh-web-modal-confirm').modal('show');\n}\n\nexport function showModalHtml(title, html, width = '500px') {\n $('#swh-web-modal-html .modal-title').text(title);\n $('#swh-web-modal-html .modal-body').html(html);\n $('#swh-web-modal-html .modal-dialog').css('max-width', width);\n $('#swh-web-modal-html .modal-dialog').css('width', width);\n $('#swh-web-modal-html').modal('show');\n}\n\nexport function addJumpToPagePopoverToDataTable(dataTableElt) {\n dataTableElt.on('draw.dt', function() {\n $('.paginate_button.disabled').css('cursor', 'pointer');\n $('.paginate_button.disabled').on('click', event => {\n const pageInfo = dataTableElt.page.info();\n let content = '<select class=\"jump-to-page\">';\n for (let i = 1; i <= pageInfo.pages; ++i) {\n let selected = '';\n if (i === pageInfo.page + 1) {\n selected = 'selected';\n }\n content += `<option value=\"${i}\" ${selected}>${i}</option>`;\n }\n content += `</select><span> / ${pageInfo.pages}</span>`;\n $(event.target).popover({\n 'title': 'Jump to page',\n 'content': content,\n 'html': true,\n 'placement': 'top',\n 'sanitizeFn': swh.webapp.filterXSS\n });\n $(event.target).popover('show');\n $('.jump-to-page').on('change', function() {\n $('.paginate_button.disabled').popover('hide');\n const pageNumber = parseInt($(this).val()) - 1;\n dataTableElt.page(pageNumber).draw('page');\n });\n });\n });\n\n dataTableElt.on('preXhr.dt', () => {\n $('.paginate_button.disabled').popover('hide');\n });\n}\n\nlet swhObjectIcons;\n\nexport function setSwhObjectIcons(icons) {\n swhObjectIcons = icons;\n}\n\nexport function getSwhObjectIcon(swhObjectType) {\n return swhObjectIcons[swhObjectType];\n}\n\nlet browsedSwhObjectMetadata = {};\n\nexport function setBrowsedSwhObjectMetadata(metadata) {\n browsedSwhObjectMetadata = metadata;\n}\n\nexport function getBrowsedSwhObjectMetadata() {\n return browsedSwhObjectMetadata;\n}\n\n// This will contain a mapping between an archived object type\n// and its related SWHID metadata for each object reachable from\n// the current browse view.\n// SWHID metadata contain the following keys:\n// * object_type: type of archived object\n// * object_id: sha1 object identifier\n// * swhid: SWHID without contextual info\n// * swhid_url: URL to resolve SWHID without contextual info\n// * context: object describing SWHID context\n// * swhid_with_context: SWHID with contextual info\n// * swhid_with_context_url: URL to resolve SWHID with contextual info\nlet swhidsContext_ = {};\n\nexport function setSwhIdsContext(swhidsContext) {\n swhidsContext_ = {};\n for (const swhidContext of swhidsContext) {\n swhidsContext_[swhidContext.object_type] = swhidContext;\n }\n}\n\nexport function getSwhIdsContext() {\n return swhidsContext_;\n}\n\nfunction setFullWidth(fullWidth) {\n if (fullWidth) {\n $('#swh-web-content').removeClass('container');\n $('#swh-web-content').addClass('container-fluid');\n } else {\n $('#swh-web-content').removeClass('container-fluid');\n $('#swh-web-content').addClass('container');\n }\n localStorage.setItem('swh-web-full-width', JSON.stringify(fullWidth));\n $('#swh-full-width-switch').prop('checked', fullWidth);\n}\n\nexport function fullWidthToggled(event) {\n setFullWidth($(event.target).prop('checked'));\n}\n\nexport function setContainerFullWidth() {\n const previousFullWidthState = JSON.parse(localStorage.getItem('swh-web-full-width'));\n if (previousFullWidthState !== null) {\n setFullWidth(previousFullWidthState);\n }\n}\n\nfunction coreSWHIDIsLowerCase(swhid) {\n const qualifiersPos = swhid.indexOf(';');\n let coreSWHID = swhid;\n if (qualifiersPos !== -1) {\n coreSWHID = swhid.slice(0, qualifiersPos);\n }\n return coreSWHID.toLowerCase() === coreSWHID;\n}\n\nexport async function validateSWHIDInput(swhidInputElt) {\n const swhidInput = swhidInputElt.value.trim();\n let customValidity = '';\n if (swhidInput.toLowerCase().startsWith('swh:')) {\n if (coreSWHIDIsLowerCase(swhidInput)) {\n const resolveSWHIDUrl = Urls.api_1_resolve_swhid(swhidInput);\n const response = await fetch(resolveSWHIDUrl);\n const responseData = await response.json();\n if (responseData.hasOwnProperty('exception')) {\n customValidity = responseData.reason;\n }\n } else {\n const qualifiersPos = swhidInput.indexOf(';');\n if (qualifiersPos === -1) {\n customValidity = 'Invalid SWHID: all characters must be in lowercase. ';\n customValidity += `Valid SWHID is ${swhidInput.toLowerCase()}`;\n } else {\n customValidity = 'Invalid SWHID: the core part must be in lowercase. ';\n const coreSWHID = swhidInput.slice(0, qualifiersPos);\n customValidity += `Valid SWHID is ${swhidInput.replace(coreSWHID, coreSWHID.toLowerCase())}`;\n }\n }\n }\n swhidInputElt.setCustomValidity(customValidity);\n $(swhidInputElt).siblings('.invalid-feedback').text(customValidity);\n}\n\nexport function isUserLoggedIn() {\n return JSON.parse($('#swh_user_logged_in').text());\n}\n",
"/**\n * Copyright (C) 2019-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport DOMPurify from 'dompurify';\n\n// we register a hook when performing XSS filtering in order to\n// possibly replace a relative image url with the one for getting\n// the image bytes from the archive content\nDOMPurify.addHook('uponSanitizeAttribute', function(node, data) {\n if (node.nodeName === 'IMG' && data.attrName === 'src') {\n\n // image url does not need any processing here\n if (data.attrValue.startsWith('data:image') ||\n data.attrValue.startsWith('http:') ||\n data.attrValue.startsWith('https:')) {\n return;\n }\n\n // get currently browsed swh object metadata\n const swhObjectMetadata = swh.webapp.getBrowsedSwhObjectMetadata();\n\n // the swh object is provided without any useful context\n // to get the image checksums from the web api\n if (!swhObjectMetadata.hasOwnProperty('directory')) {\n return;\n }\n\n let directory;\n // get directory from which to check path existence\n if (swhObjectMetadata.object_type === 'directory') {\n // case when a README is rendered in a directory view\n directory = swhObjectMetadata.object_id;\n } else {\n // otherwise we browse a content, get its directory\n directory = swhObjectMetadata.directory;\n }\n\n // used internal endpoint as image url to possibly get the image data\n // from the archive content\n let directoryUrl = Urls.browse_directory_resolve_content_path(directory);\n let path = data.attrValue;\n // strip any query parameters appended to path\n let processedPath = path;\n if (!processedPath.startsWith('/')) {\n processedPath = '/' + processedPath;\n }\n const url = new URL(window.location.origin + processedPath);\n if (url.search) {\n path = path.replace(url.search, '');\n }\n // update img src attribute with archive URL\n directoryUrl += `?path=${encodeURIComponent(path)}`;\n data.attrValue = directoryUrl;\n }\n});\n\nexport function filterXSS(html) {\n return DOMPurify.sanitize(html);\n}\n",
"/*! @license DOMPurify 2.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.1/LICENSE */\n\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.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n 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\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringToString = unapply(String.prototype.toString);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n /* Add properties to a lookup table */\n\n function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n\n while (l--) {\n var element = array[l];\n\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n /* Shallow clone an object */\n\n function clone(object) {\n var newObject = create(null);\n var property;\n\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\n var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n\n var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n\n\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '2.4.1';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with <html>... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n var FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n var RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n var RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n\n var SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (\u00a77.3.3)\n * - DOM Tree Accessors (\u00a73.1.5)\n * - Form Element Parent-Child Relations (\u00a74.10.3)\n * - Iframe srcdoc / Nested WindowProxies (\u00a74.8.5)\n * - HTMLCollection (\u00a74.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n\n var SANITIZE_NAMED_PROPS = false;\n var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n\n var ALLOWED_NAMESPACES = null;\n var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n /* Parsing of strict XHTML documents */\n\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // For XHTML and XML documents that support custom namespaces\n\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check if tagname contains Unicode */\n\n\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n var tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Remove element if anything forbids its presence */\n\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n /* Keep content except for bad-listed elements */\n\n\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check whether element has a valid namespace */\n\n\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Sanitize element content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n content = stringReplace(content, ERB_EXPR$1, ' ');\n content = stringReplace(content, TMPLIT_EXPR$1, ' ');\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n\n\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n\n\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n\n\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName.indexOf('-') > 0;\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n\n\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr;\n var value;\n var lcName;\n var l;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n /* Execute a hook if present */\n\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n\n\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n\n\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n\n\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n value = stringReplace(value, ERB_EXPR$1, ' ');\n value = stringReplace(value, TMPLIT_EXPR$1, ' ');\n }\n /* Is `value` valid for this attribute? */\n\n\n var lcTag = transformCaseFunc(currentNode.nodeName);\n\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n\n\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode); // Prefix the value and later re-create the attribute with the sanitized value\n\n\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Handle attributes that require Trusted Types */\n\n\n if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy.createHTML(value);\n break;\n\n case 'TrustedScriptURL':\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n\n\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n\n\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode;\n\n var shadowIterator = _createIterator(fragment);\n /* Execute a hook if present */\n\n\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n /* Deep shadow DOM detected */\n\n\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(shadowNode);\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n\n\n DOMPurify.sanitize = function (dirty) {\n var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var body;\n var importedNode;\n var currentNode;\n var oldNode;\n var returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n\n IS_EMPTY_INPUT = !dirty;\n\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n\n\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n /* Check we can run. Otherwise fall back or ignore */\n\n\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n /* Assign config vars */\n\n\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n\n\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n\n\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n\n\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n\n\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n\n\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n /* Shadow DOM detected, sanitize it */\n\n\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n /* If we sanitized `dirty` in-place, return it. */\n\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n\n\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n\n\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n\n SET_CONFIG = true;\n };\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n\n\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n\n\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n\n\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n\n\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n\n\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n\n\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n",
"/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && 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 global == 'object' && global;\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'\"': '&quot;',\n\t\t'&': '&amp;',\n\t\t'\\'': '&#x27;',\n\t\t'<': '&lt;',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it\u2019s part of a tag or an\n\t\t// unquoted attribute value. We\u2019re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '&gt;',\n\t\t// In Internet Explorer \u2264 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'`': '&#x60;'\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// \u201cOtherwise, 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.\u201d\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(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;')\n\t\t\t\t\t.replace(/&#x66;&#x6A;/g, '&fjlig;');\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(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;');\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\u2019re 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. `&amp`.\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. `&#119558;`.\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. `&#x1D306;`.\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\u2019re still here, `if ($7)` is implied; it\u2019s 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 (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (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}(this));\n",
"\"use strict\";\n\nvar iterateObject = require(\"iterate-object\"),\n regexEscape = require(\"regex-escape\"),\n he = require(\"he\");\n\n//const DECODE_MAP = require(\"./character-map\")\n//const ENCODE_MAP = {};\n//\n//iterateObject(DECODE_MAP, (value, name) => {\n// ENCODE_MAP[value] = name;\n//});\n\nmodule.exports = {\n /**\n * decode\n * Decodes an encoded string.\n *\n * @name decode\n * @function\n * @param {String} input The encoded string.\n * @returns {String} The decoded string.\n */\n decode: function decode(input) {\n return he.decode(input);\n }\n\n /**\n * encode\n * Encodes a string.\n *\n * @name encode\n * @function\n * @param {String} input The string that must be encoded.\n * @returns {String} The encoded string.\n */\n ,\n encode: function encode(input) {\n return he.encode(input);\n }\n};",
"\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * iterateObject\n * Iterates an object. Note the object field order may differ.\n *\n * @name iterateObject\n * @function\n * @param {Object} obj The input object.\n * @param {Function} fn A function that will be called with the current value, field name and provided object.\n * @return {Function} The `iterateObject` function.\n */\nfunction iterateObject(obj, fn) {\n var i = 0,\n keys = [];\n\n if (Array.isArray(obj)) {\n for (; i < obj.length; ++i) {\n if (fn(obj[i], i, obj) === false) {\n break;\n }\n }\n } else if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj !== null) {\n keys = Object.keys(obj);\n for (; i < keys.length; ++i) {\n if (fn(obj[keys[i]], keys[i], obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = iterateObject;",
"/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n",
"module.exports = \"// http://github.com/jsvine/notebookjs\\n// notebook.js may be freely distributed under the MIT license.\\n(function () {\\n var VERSION = \\\"0.6.7\\\";\\n var root = this;\\n var isBrowser = root.window !== undefined;\\n var doc;\\n\\n // Get browser or JSDOM document\\n if (isBrowser) {\\n doc = root.document;\\n } else {\\n var jsdom = require(\\\"jsdom\\\");\\n var dom = new jsdom.JSDOM();\\n doc = dom.window.document;\\n }\\n\\n // Helper functions\\n var ident = function (x) { return x; };\\n\\n var makeElement = function (tag, classNames) {\\n var el = doc.createElement(tag);\\n el.className = (classNames || []).map(function (cn) {\\n return nb.prefix + cn;\\n }).join(\\\" \\\");\\n return el;\\n };\\n\\n var escapeHTML = function (raw) {\\n var replaced = raw\\n .replace(/</g, \\\"&lt;\\\")\\n .replace(/>/g, \\\"&gt;\\\");\\n return replaced;\\n };\\n\\n var joinText = function (text) {\\n if (text.join) {\\n return text.map(joinText).join(\\\"\\\");\\n } else {\\n return text;\\n }\\n };\\n\\n // Get supporting libraries\\n var getMarkdown = function () {\\n return root.marked || (typeof require === \\\"function\\\" && require(\\\"marked\\\"));\\n };\\n\\n var getAnsi = function () {\\n var lib = root.ansi_up || (typeof require === \\\"function\\\" && require(\\\"ansi_up\\\"));\\n return lib && lib.ansi_to_html;\\n };\\n\\n var getSanitizer = function () {\\n var lib = root.DOMPurify || (typeof require === \\\"function\\\" && require(\\\"dompurify\\\"));\\n if (isBrowser) {\\n return lib && lib.sanitize;\\n } else {\\n return lib(dom.window).sanitize;\\n }\\n };\\n\\n // Set up `nb` namespace\\n var nb = {\\n prefix: \\\"nb-\\\",\\n markdown: getMarkdown() || ident,\\n ansi: getAnsi() || ident,\\n sanitizer: getSanitizer() || ident,\\n highlighter: ident,\\n VERSION: VERSION\\n };\\n\\n // Inputs\\n nb.Input = function (raw, cell) {\\n this.raw = raw;\\n this.cell = cell;\\n };\\n\\n nb.Input.prototype.render = function () {\\n if (!this.raw.length) { return makeElement(\\\"div\\\"); }\\n var holder = makeElement(\\\"div\\\", [ \\\"input\\\" ]);\\n var cell = this.cell;\\n if (typeof cell.number === \\\"number\\\") {\\n holder.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var pre_el = makeElement(\\\"pre\\\");\\n var code_el = makeElement(\\\"code\\\");\\n var notebook = cell.worksheet.notebook;\\n var m = notebook.metadata;\\n var lang = this.cell.raw.language || m.language || (m.kernelspec && m.kernelspec.language) || (m.language_info && m.language_info.name);\\n code_el.setAttribute(\\\"data-language\\\", lang);\\n code_el.className = \\\"lang-\\\" + lang;\\n code_el.innerHTML = nb.highlighter(escapeHTML(joinText(this.raw)), pre_el, code_el, lang);\\n pre_el.appendChild(code_el);\\n holder.appendChild(pre_el);\\n this.el = holder;\\n return holder;\\n };\\n\\n // Outputs and output-renderers\\n var imageCreator = function (format) {\\n return function (data) {\\n var el = makeElement(\\\"img\\\", [ \\\"image-output\\\" ]);\\n el.src = \\\"data:image/\\\" + format + \\\";base64,\\\" + joinText(data).replace(/\\\\n/g, \\\"\\\");\\n return el;\\n };\\n };\\n\\n nb.display = {};\\n nb.display.text = function (text) {\\n var el = makeElement(\\\"pre\\\", [ \\\"text-output\\\" ]);\\n el.innerHTML = nb.highlighter(nb.ansi(joinText(text)), el);\\n return el;\\n };\\n nb.display[\\\"text/plain\\\"] = nb.display.text;\\n\\n nb.display.html = function (html) {\\n var el = makeElement(\\\"div\\\", [ \\\"html-output\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(html));\\n return el;\\n };\\n nb.display[\\\"text/html\\\"] = nb.display.html;\\n\\n nb.display.marked = function(md) {\\n return nb.display.html(nb.markdown(joinText(md)));\\n };\\n nb.display[\\\"text/markdown\\\"] = nb.display.marked;\\n\\n nb.display.svg = function (svg) {\\n var el = makeElement(\\\"div\\\", [ \\\"svg-output\\\" ]);\\n el.innerHTML = joinText(svg);\\n return el;\\n };\\n nb.display[\\\"text/svg+xml\\\"] = nb.display.svg;\\n nb.display[\\\"image/svg+xml\\\"] = nb.display.svg;\\n\\n nb.display.latex = function (latex) {\\n var el = makeElement(\\\"div\\\", [ \\\"latex-output\\\" ]);\\n el.innerHTML = joinText(latex);\\n return el;\\n };\\n nb.display[\\\"text/latex\\\"] = nb.display.latex;\\n\\n nb.display.javascript = function (js) {\\n var el = makeElement(\\\"script\\\");\\n el.innerHTML = joinText(js);\\n return el;\\n };\\n nb.display[\\\"application/javascript\\\"] = nb.display.javascript;\\n\\n nb.display.png = imageCreator(\\\"png\\\");\\n nb.display[\\\"image/png\\\"] = nb.display.png;\\n nb.display.jpeg = imageCreator(\\\"jpeg\\\");\\n nb.display[\\\"image/jpeg\\\"] = nb.display.jpeg;\\n\\n nb.display_priority = [\\n \\\"png\\\", \\\"image/png\\\", \\\"jpeg\\\", \\\"image/jpeg\\\",\\n \\\"svg\\\", \\\"image/svg+xml\\\", \\\"text/svg+xml\\\", \\\"html\\\", \\\"text/html\\\",\\n \\\"text/markdown\\\", \\\"latex\\\", \\\"text/latex\\\",\\n \\\"javascript\\\", \\\"application/javascript\\\",\\n \\\"text\\\", \\\"text/plain\\\"\\n ];\\n\\n var render_display_data = function () {\\n var o = this;\\n var formats = nb.display_priority.filter(function (d) {\\n return o.raw.data ? o.raw.data[d] : o.raw[d];\\n });\\n var format = formats[0];\\n if (format) {\\n if (nb.display[format]) {\\n return nb.display[format](o.raw[format] || o.raw.data[format]);\\n }\\n }\\n return makeElement(\\\"div\\\", [ \\\"empty-output\\\" ]);\\n };\\n\\n var render_error = function () {\\n var el = makeElement(\\\"pre\\\", [ \\\"pyerr\\\" ]);\\n var raw = this.raw.traceback.join(\\\"\\\\n\\\");\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n };\\n\\n nb.Output = function (raw, cell) {\\n this.raw = raw;\\n this.cell = cell;\\n this.type = raw.output_type;\\n };\\n\\n nb.Output.prototype.renderers = {\\n \\\"display_data\\\": render_display_data,\\n \\\"execute_result\\\": render_display_data,\\n \\\"pyout\\\": render_display_data,\\n \\\"pyerr\\\": render_error,\\n \\\"error\\\": render_error,\\n \\\"stream\\\": function () {\\n var el = makeElement(\\\"pre\\\", [ (this.raw.stream || this.raw.name) ]);\\n var raw = joinText(this.raw.text);\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n }\\n };\\n\\n nb.Output.prototype.render = function () {\\n var outer = makeElement(\\\"div\\\", [ \\\"output\\\" ]);\\n if (typeof this.cell.number === \\\"number\\\") {\\n outer.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var inner = this.renderers[this.type].call(this);\\n outer.appendChild(inner);\\n this.el = outer;\\n return outer;\\n };\\n\\n // Post-processing\\n nb.coalesceStreams = function (outputs) {\\n if (!outputs.length) { return outputs; }\\n var last = outputs[0];\\n var new_outputs = [ last ];\\n outputs.slice(1).forEach(function (o) {\\n if (o.raw.output_type === \\\"stream\\\" &&\\n last.raw.output_type === \\\"stream\\\" &&\\n o.raw.stream === last.raw.stream &&\\n o.raw.name === last.raw.name) {\\n last.raw.text = last.raw.text.concat(o.raw.text);\\n } else {\\n new_outputs.push(o);\\n last = o;\\n }\\n });\\n return new_outputs;\\n };\\n\\n // Cells\\n nb.Cell = function (raw, worksheet) {\\n var cell = this;\\n cell.raw = raw;\\n cell.worksheet = worksheet;\\n cell.type = raw.cell_type;\\n if (cell.type === \\\"code\\\") {\\n cell.number = raw.prompt_number > -1 ? raw.prompt_number : raw.execution_count;\\n var source = raw.input || [ raw.source ];\\n cell.input = new nb.Input(source, cell);\\n var raw_outputs = (cell.raw.outputs || []).map(function (o) {\\n return new nb.Output(o, cell);\\n });\\n cell.outputs = nb.coalesceStreams(raw_outputs);\\n }\\n };\\n\\n var math_delimiters = [\\n {left: \\\"$$\\\", right: \\\"$$\\\", display: true},\\n {left: \\\"\\\\\\\\[\\\", right: \\\"\\\\\\\\]\\\", display: true},\\n {left: \\\"\\\\\\\\(\\\", right: \\\"\\\\\\\\)\\\", display: false},\\n {left: \\\"$\\\", right: \\\"$\\\", display: false}\\n ];\\n\\n nb.Cell.prototype.renderers = {\\n markdown: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"markdown-cell\\\" ]);\\n\\n var joined = joinText(this.raw.source);\\n\\n // Pre-render math via KaTeX's auto-render extension, if available\\n if (root.renderMathInElement != null) {\\n el.innerHTML = nb.sanitizer(joined);\\n root.renderMathInElement(el, { delimiters: math_delimiters });\\n el.innerHTML = nb.sanitizer(nb.markdown(\\n el.innerHTML\\n .replace(/&gt;/g, \\\">\\\") // Necessary to enable blockquote syntax\\n ));\\n } else {\\n el.innerHTML = nb.sanitizer(nb.markdown(joined));\\n }\\n\\n return el;\\n },\\n heading: function () {\\n var el = makeElement(\\\"h\\\" + this.raw.level, [ \\\"cell\\\", \\\"heading-cell\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(this.raw.source));\\n return el;\\n },\\n raw: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"raw-cell\\\" ]);\\n el.innerHTML = escapeHTML(joinText(this.raw.source));\\n return el;\\n },\\n code: function () {\\n var cell_el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"code-cell\\\" ]);\\n cell_el.appendChild(this.input.render());\\n var output_els = this.outputs.forEach(function (o) {\\n cell_el.appendChild(o.render());\\n });\\n return cell_el;\\n }\\n };\\n\\n nb.Cell.prototype.render = function () {\\n var el = this.renderers[this.type].call(this);\\n this.el = el;\\n return el;\\n };\\n\\n // Worksheets\\n nb.Worksheet = function (raw, notebook) {\\n var worksheet = this;\\n this.raw = raw;\\n this.notebook = notebook;\\n this.cells = raw.cells.map(function (c) {\\n return new nb.Cell(c, worksheet);\\n });\\n this.render = function () {\\n var worksheet_el = makeElement(\\\"div\\\", [ \\\"worksheet\\\" ]);\\n worksheet.cells.forEach(function (c) {\\n worksheet_el.appendChild(c.render());\\n });\\n this.el = worksheet_el;\\n return worksheet_el;\\n };\\n };\\n\\n // Notebooks\\n nb.Notebook = function (raw, config) {\\n var notebook = this;\\n this.raw = raw;\\n this.config = config;\\n var meta = this.metadata = raw.metadata || {};\\n this.title = meta.title || meta.name;\\n var _worksheets = raw.worksheets || [ { cells: raw.cells } ];\\n this.worksheets = _worksheets.map(function (ws) {\\n return new nb.Worksheet(ws, notebook);\\n });\\n this.sheet = this.worksheets[0];\\n };\\n\\n nb.Notebook.prototype.render = function () {\\n var notebook_el = makeElement(\\\"div\\\", [ \\\"notebook\\\" ]);\\n this.worksheets.forEach(function (w) {\\n notebook_el.appendChild(w.render());\\n });\\n this.el = notebook_el;\\n return notebook_el;\\n };\\n\\n nb.parse = function (nbjson, config) {\\n return new nb.Notebook(nbjson, config);\\n };\\n\\n // Exports\\n if (typeof define === 'function' && define.amd) {\\n define(function() {\\n return nb;\\n });\\n }\\n if (typeof exports !== 'undefined') {\\n if (typeof module !== 'undefined' && module.exports) {\\n exports = module.exports = nb;\\n }\\n exports.nb = nb;\\n } else {\\n root.nb = nb;\\n }\\n\\n}).call(this);\\n\"",
"/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n",
"\"use strict\";\n\n/**\n * RegexEscape\n * Escapes a string for using it in a regular expression.\n *\n * @name RegexEscape\n * @function\n * @param {String} input The string that must be escaped.\n * @return {String} The escaped string.\n */\nfunction RegexEscape(input) {\n return input.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\n/**\n * proto\n * Adds the `RegexEscape` function to `RegExp` class.\n *\n * @name proto\n * @function\n * @return {Function} The `RegexEscape` function.\n */\nRegexEscape.proto = function () {\n RegExp.escape = RegexEscape;\n return RegexEscape;\n};\n\nmodule.exports = RegexEscape;",
"/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n",
"require(\"!!/var/lib/jenkins/workspace/DWAPPS/pypi-upload/node_modules/script-loader/addScript.js\")(require(\"!!/var/lib/jenkins/workspace/DWAPPS/pypi-upload/node_modules/raw-loader/index.js!/var/lib/jenkins/workspace/DWAPPS/pypi-upload/node_modules/notebookjs/notebook.js\"))",
"function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}",
"/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n",
"// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n",
"// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};",
"// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};",
"__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};",
"// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + {\"46\":\"org\",\"399\":\"highlightjs\",\"509\":\"pdfjs\",\"522\":\"showdown\",\"684\":\"mathjax\",\"891\":\"d3\"}[chunkId] + \".\" + {\"46\":\"9adc9a39a210c2fb4be0\",\"399\":\"ea9ab9de27a6e276ec47\",\"509\":\"9e0f3974fef1477cda42\",\"522\":\"b448e42a34c43d6a7de5\",\"684\":\"8052aaae7f18c4bbf50f\",\"891\":\"9a0d48ae00854a5a1b5d\"}[chunkId] + \".js\";\n};",
"// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + {\"46\":\"org\",\"399\":\"highlightjs\",\"522\":\"showdown\"}[chunkId] + \".\" + {\"46\":\"6851b70c924e28f6bf51\",\"399\":\"ae43064ab38a65a04d81\",\"522\":\"426fbf6a7a6653fd4cbb\"}[chunkId] + \".css\";\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__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};",
"__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }",
"// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};",
"__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};",
"__webpack_require__.p = \"/static/\";",
"// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t836: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkswh\"] = self[\"webpackChunkswh\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));",
"var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"0.2.7\"};\n _global.SENTRY_RELEASES=_global.SENTRY_RELEASES || {};\n _global.SENTRY_RELEASES[\"swh-webapp@swh\"]={id:\"0.2.7\"};\n "
],
"names": [
"root",
"factory",
"exports",
"module",
"define",
"amd",
"self",
"leafPrototypes",
"getProto",
"inProgress",
"dataWebpackPrefix",
"loadStylesheet",
"installedCssChunks",
"BrowserClient",
"constructor",
"options",
"_metadata",
"sdk",
"name",
"packages",
"version",
"super",
"sendClientReports",
"this",
"_flushOutcomes",
"eventFromException",
"exception",
"hint",
"_options",
"stackParser",
"attachStacktrace",
"eventFromMessage",
"message",
"level",
"sendEvent",
"event",
"breadcrumbIntegration",
"getIntegrationById",
"sentry",
"addBreadcrumb",
"category",
"type",
"event_id",
"_prepareEvent",
"scope",
"platform",
"outcomes",
"_clearOutcomes",
"length",
"__SENTRY_DEBUG__",
"log",
"_dsn",
"url",
"envelope",
"tunnel",
"isRealNavigator",
"Object",
"prototype",
"toString",
"call",
"transportOptions",
"sendBeacon",
"_sendEnvelope",
"e",
"exceptionFromError",
"ex",
"frames",
"parseStackFrames",
"value",
"extractMessage",
"stacktrace",
"undefined",
"eventFromError",
"values",
"stack",
"popSize",
"framesToPop",
"reactMinifiedRegexp",
"test",
"getPopSize",
"error",
"eventFromUnknownInput",
"syntheticException",
"eventFromString",
"isUnhandledRejection",
"domException",
"tags",
"code",
"client",
"getClient",
"normalizeDepth",
"getOptions",
"extra",
"__serialized__",
"eventFromPlainObject",
"synthetic",
"input",
"WINDOW",
"ignoreOnError",
"shouldIgnoreOnError",
"ignoreNextOnError",
"setTimeout",
"wrap",
"fn",
"before",
"wrapper",
"__sentry_wrapped__",
"sentryWrapped",
"args",
"Array",
"slice",
"arguments",
"apply",
"wrappedArguments",
"map",
"arg",
"addEventProcessor",
"mechanism",
"property",
"hasOwnProperty",
"_oO",
"getOwnPropertyDescriptor",
"configurable",
"defineProperty",
"get",
"BREADCRUMB_INTEGRATION_ID",
"Breadcrumbs",
"static",
"id",
"__init",
"console",
"dom",
"fetch",
"history",
"xhr",
"setupOnce",
"_consoleBreadcrumb",
"_innerDomBreadcrumb",
"handlerData",
"target",
"keyAttrs",
"serializeAttribute",
"global",
"_domBreadcrumb",
"_xhrBreadcrumb",
"_fetchBreadcrumb",
"_historyBreadcrumb",
"i",
"breadcrumb",
"data",
"logger",
"endTimestamp",
"__sentry_own_request__",
"method",
"status_code",
"body",
"__sentry_xhr__",
"fetchData",
"match",
"response",
"status",
"from",
"to",
"parsedLoc",
"parsedFrom",
"parsedTo",
"path",
"protocol",
"host",
"relative",
"__initStatic",
"Dedupe",
"addGlobalEventProcessor",
"getCurrentHub",
"eventProcessor",
"currentEvent",
"getIntegration",
"previousEvent",
"currentMessage",
"previousMessage",
"_isSameFingerprint",
"_isSameStacktrace",
"_isSameMessageEvent",
"previousException",
"_getExceptionFromEvent",
"currentException",
"_isSameExceptionEvent",
"_shouldDropEvent",
"_previousEvent",
"currentFrames",
"_getFramesFromEvent",
"previousFrames",
"frameA",
"frameB",
"filename",
"lineno",
"colno",
"function",
"currentFingerprint",
"fingerprint",
"previousFingerprint",
"join",
"GlobalHandlers",
"__init2",
"_installFunc",
"onerror",
"_installGlobalOnErrorHandler",
"onunhandledrejection",
"_installGlobalOnUnhandledRejectionHandler",
"Error",
"stackTraceLimit",
"key",
"installFunc",
"hub",
"getHubAndOptions",
"msg",
"line",
"column",
"ERROR_TYPES_RE",
"groups",
"_enhanceEventWithInitialFrame",
"_eventFromIncompleteOnError",
"addMechanismAndCapture",
"reason",
"detail",
"String",
"ev",
"ev0",
"ev0s",
"ev0sf",
"isNaN",
"parseInt",
"push",
"in_app",
"handled",
"captureEvent",
"originalException",
"HttpContext",
"request",
"referrer",
"userAgent",
"headers",
"Referer",
"LinkedErrors",
"_key",
"_limit",
"limit",
"parser",
"linkedErrors",
"_walkErrorTree",
"_handler",
"DEFAULT_EVENT_TARGET",
"TryCatch",
"XMLHttpRequest",
"eventTarget",
"requestAnimationFrame",
"setInterval",
"_wrapTimeFunction",
"_wrapRAF",
"_wrapXHR",
"eventTargetOption",
"isArray",
"forEach",
"_wrapEventTarget",
"original",
"originalCallback",
"callback",
"handler",
"originalSend",
"prop",
"wrapOptions",
"originalFunction",
"globalObject",
"proto",
"eventName",
"handleEvent",
"err",
"originalRemoveEventListener",
"wrappedEventHandler",
"originalEventHandler",
"defaultIntegrations",
"init",
"release",
"autoSessionTracking",
"clientOptions",
"integrations",
"transport",
"captureSession",
"startSessionOnHub",
"startSessionTracking",
"startSession",
"ignoreDuration",
"UNKNOWN_FUNCTION",
"createFrame",
"func",
"frame",
"chromeRegex",
"chromeEvalRegex",
"geckoREgex",
"geckoEvalRegex",
"winjsRegex",
"defaultStackLineParsers",
"parts",
"exec",
"indexOf",
"subMatch",
"extractSafariExtensionDetails",
"defaultStackParser",
"isSafariExtension",
"isSafariWebExtension",
"split",
"makeFetchTransport",
"nativeFetch",
"requestOptions",
"referrerPolicy",
"keepalive",
"fetchOptions",
"then",
"statusCode",
"c",
"cachedFetchImpl",
"getNativeFetchImplementation",
"document",
"fetchImpl",
"createElement",
"sandbox",
"hidden",
"head",
"appendChild",
"contentWindow",
"removeChild",
"bind",
"clearCachedFetchImplementation",
"makeXHRTransport",
"resolve",
"reject",
"onreadystatechange",
"readyState",
"getResponseHeader",
"open",
"header",
"setRequestHeader",
"send",
"getBaseApiEndpoint",
"dsn",
"port",
"getEnvelopeEndpointWithUrlEncodedAuth",
"tunnelOrOptions",
"sdkInfo",
"projectId",
"_getIngestEndpoint",
"sentry_key",
"publicKey",
"sentry_version",
"sentry_client",
"_encodedAuth",
"ALREADY_SEEN_ERROR",
"BaseClient",
"_integrations",
"_integrationsInitialized",
"__init3",
"_numProcessing",
"__init4",
"_outcomes",
"_transport",
"recordDroppedEvent",
"captureException",
"eventId",
"_process",
"_captureEvent",
"result",
"captureMessage",
"promisedEvent",
"session",
"_isEnabled",
"sendSession",
"getDsn",
"getTransport",
"flush",
"timeout",
"_isClientDoneProcessing",
"clientFinished",
"transportFlushed",
"close",
"enabled",
"setupIntegrations",
"integrationId",
"integration",
"env",
"attachment",
"attachments",
"textEncoder",
"_updateSessionFromEvent",
"crashed",
"errored",
"exceptions",
"sessionNonTerminal",
"errors",
"Number",
"ticked",
"interval",
"clearInterval",
"normalizeMaxBreadth",
"prepared",
"timestamp",
"_applyClientOptions",
"_applyIntegrationsMetadata",
"finalScope",
"captureContext",
"update",
"getAttachments",
"applyToEvent",
"evt",
"_normalizeEvent",
"depth",
"maxBreadth",
"normalized",
"breadcrumbs",
"b",
"user",
"contexts",
"trace",
"spans",
"span",
"environment",
"dist",
"maxValueLength",
"integrationsArray",
"keys",
"_processEvent",
"finalEvent",
"sentryError",
"logLevel",
"sampleRate",
"isTransaction",
"beforeSendProcessorName",
"beforeSendProcessor",
"Math",
"random",
"__sentry__",
"beforeSendResult",
"invalidValueError",
"_validateBeforeSendResult",
"processedEvent",
"getSession",
"transactionInfo",
"transaction_info",
"transaction",
"source",
"changes",
"propagations",
"promise",
"quantity",
"getSdkMetadataForEnvelopeHeader",
"metadata",
"createSessionEnvelope",
"envelopeHeaders",
"sent_at",
"Date",
"toISOString",
"envelopeItem",
"createEventEnvelope",
"eventType",
"enhanceEventWithSdkInfo",
"dynamicSamplingContext",
"sdkProcessingMetadata",
"createEventEnvelopeHeaders",
"eventItem",
"withScope",
"DEFAULT_BREADCRUMBS",
"Hub",
"_stack",
"_version",
"getStackTop",
"bindClient",
"isOlderThan",
"pushScope",
"getScope",
"getStack",
"popScope",
"pop",
"_lastEventId",
"_withClient",
"lastEventId",
"beforeBreadcrumb",
"maxBreadcrumbs",
"mergedBreadcrumb",
"finalBreadcrumb",
"setUser",
"setTags",
"setExtras",
"extras",
"setTag",
"setExtra",
"setContext",
"context",
"configureScope",
"run",
"oldHub",
"makeMain",
"startTransaction",
"customSamplingContext",
"_callExtensionMethod",
"traceHeaders",
"endSession",
"_sendSessionUpdate",
"layer",
"setSession",
"getUser",
"currentSession",
"shouldSendDefaultPii",
"Boolean",
"sendDefaultPii",
"getMainCarrier",
"__SENTRY__",
"extensions",
"registry",
"getHubFromCarrier",
"setHubOnCarrier",
"hasHubOnCarrier",
"activeDomain",
"domain",
"active",
"registryHubTopStack",
"_Oo",
"getHubFromActiveDomain",
"carrier",
"installedIntegrations",
"getIntegrationsToSetup",
"userIntegrations",
"isDefaultInstance",
"finalIntegrations",
"integrationsByName",
"currentInstance",
"existingInstance",
"filterDuplicates",
"debugIndex",
"findIndex",
"debugInstance",
"splice",
"integrationIndex",
"originalFunctionToString",
"FunctionToString",
"Function",
"DEFAULT_IGNORE_ERRORS",
"InboundFilters",
"eventProcess",
"internalOptions",
"allowUrls",
"denyUrls",
"ignoreErrors",
"ignoreInternal",
"_mergeOptions",
"_isSentryError",
"oO",
"_getPossibleEventMessages",
"some",
"_isIgnoredError",
"_getEventFilterUrl",
"_isDeniedUrl",
"_isAllowedUrl",
"_getLastValidUrl",
"Scope",
"_notifyingListeners",
"_scopeListeners",
"_eventProcessors",
"_breadcrumbs",
"_attachments",
"_user",
"_tags",
"_extra",
"_contexts",
"_sdkProcessingMetadata",
"newScope",
"_level",
"_span",
"_session",
"_transactionName",
"_fingerprint",
"_requestSession",
"addScopeListener",
"_notifyScopeListeners",
"getRequestSession",
"setRequestSession",
"requestSession",
"setFingerprint",
"setLevel",
"setTransactionName",
"setSpan",
"getSpan",
"getTransaction",
"updatedScope",
"clear",
"maxCrumbs",
"clearBreadcrumbs",
"addAttachment",
"clearAttachments",
"getTraceContext",
"transactionName",
"_applyFingerprint",
"_notifyEventProcessors",
"getGlobalEventProcessors",
"setSDKProcessingMetadata",
"newData",
"processors",
"index",
"processor",
"final",
"concat",
"initAndBind",
"clientClass",
"debug",
"warn",
"initialScope",
"makeSession",
"startingTime",
"sid",
"started",
"duration",
"toJSON",
"did",
"attrs",
"ip_address",
"ipAddress",
"user_agent",
"sessionToJSON",
"updateSession",
"email",
"username",
"closeSession",
"createTransport",
"makeRequest",
"buffer",
"bufferSize",
"rateLimits",
"filteredEnvelopeItems",
"item",
"envelopeItemDataCategory",
"filteredEnvelope",
"recordEnvelopeLoss",
"_",
"add",
"drain",
"SDK_VERSION",
"htmlTreeAsString",
"elem",
"currentElem",
"MAX_TRAVERSE_HEIGHT",
"MAX_OUTPUT_LEN",
"out",
"height",
"len",
"separator",
"sepLength",
"nextStr",
"_htmlElementAsString",
"parentNode",
"reverse",
"el",
"className",
"classes",
"attr",
"tagName",
"toLowerCase",
"keyAttrPairs",
"filter",
"keyAttr",
"getAttribute",
"keyAttrPair",
"allowedAttrs",
"getLocationHref",
"location",
"href",
"createClientReportEnvelope",
"discarded_events",
"clientReportItem",
"DSN_REGEX",
"dsnToString",
"withPassword",
"pass",
"dsnFromComponents",
"components",
"makeDsn",
"str",
"lastPath",
"projectMatch",
"dsnFromString",
"component",
"isValidProtocol",
"validateDsn",
"isBrowserBundle",
"__SENTRY_BROWSER_BUNDLE__",
"createEnvelope",
"items",
"addItemToEnvelope",
"newItem",
"forEachEnvelopeItem",
"envelopeItemType",
"encodeUTF8",
"TextEncoder",
"encode",
"serializeEnvelope",
"envHeaders",
"JSON",
"stringify",
"append",
"next",
"itemHeaders",
"payload",
"Uint8Array",
"stringifiedPayload",
"buffers",
"totalLength",
"reduce",
"acc",
"buf",
"merged",
"offset",
"set",
"concatBuffers",
"createAttachmentEnvelopeItem",
"content_type",
"contentType",
"attachment_type",
"attachmentType",
"ITEM_TYPE_TO_DATA_CATEGORY_MAP",
"sessions",
"client_report",
"user_report",
"envelopeItemTypeToDataCategory",
"SentryError",
"setPrototypeOf",
"handlers",
"instrumented",
"instrument",
"originalConsoleMethod",
"triggerHandlers",
"instrumentConsole",
"triggerDOMHandler",
"globalDOMEventHandler",
"makeDOMEventHandler",
"addEventListener",
"originalAddEventListener",
"listener",
"__sentry_instrumentation_handlers__",
"handlerForType",
"refCount",
"instrumentDOM",
"xhrproto",
"originalOpen",
"xhrInfo",
"toUpperCase",
"onreadystatechangeHandler",
"now",
"startTimestamp",
"readyStateArgs",
"instrumentXHR",
"originalFetch",
"getFetchMethod",
"getFetchUrl",
"instrumentFetch",
"oldOnPopState",
"onpopstate",
"historyReplacementFunction",
"originalHistoryFunction",
"lastHref",
"instrumentHistory",
"_oldOnErrorHandler",
"_oldOnUnhandledRejectionHandler",
"addInstrumentationHandler",
"fetchArgs",
"Request",
"debounceTimerID",
"lastCapturedEvent",
"globalListener",
"isContentEditable",
"shouldSkipDOMEvent",
"previous",
"current",
"shouldShortcircuitPreviousDebounce",
"clearTimeout",
"objectToString",
"isError",
"wat",
"isInstanceOf",
"isBuiltin",
"isErrorEvent",
"isDOMError",
"isDOMException",
"isString",
"isPrimitive",
"isPlainObject",
"isEvent",
"Event",
"isElement",
"Element",
"isRegExp",
"isThenable",
"isSyntheticEvent",
"base",
"_e",
"CONSOLE_LEVELS",
"consoleSandbox",
"originalConsole",
"wrappedLevels",
"originalWrappedFunc",
"__sentry_original__",
"makeLogger",
"enable",
"disable",
"memoBuilder",
"hasWeakSet",
"WeakSet",
"inner",
"obj",
"has",
"delete",
"uuid4",
"gbl",
"crypto",
"msCrypto",
"randomUUID",
"replace",
"getRandomByte",
"getRandomValues",
"getFirstException",
"getEventDescription",
"firstException",
"addExceptionTypeValue",
"addExceptionMechanism",
"newMechanism",
"currentMechanism",
"mergedData",
"checkOrSetAlreadyCaught",
"__sentry_captured__",
"arrayify",
"maybeArray",
"isNodeEnv",
"process",
"dynamicRequire",
"mod",
"require",
"normalize",
"Infinity",
"maxProperties",
"visit",
"ERROR",
"normalizeToSize",
"object",
"maxSize",
"encodeURI",
"utf8Length",
"memo",
"memoize",
"unmemoize",
"includes",
"stringified",
"_events",
"g",
"window",
"getPrototypeOf",
"stringifyValue",
"startsWith",
"valueWithToJSON",
"numAdded",
"visitable",
"visitKey",
"visitValue",
"fill",
"replacementFactory",
"wrapped",
"markFunctionWrapped",
"addNonEnumerableProperty",
"writable",
"getOriginalFunction",
"urlEncode",
"encodeURIComponent",
"convertToPlainObject",
"getOwnProperties",
"newObj",
"serializeEventTarget",
"currentTarget",
"CustomEvent",
"extractedProps",
"extractExceptionKeysForMessage",
"maxLength",
"sort",
"includedKeys",
"serialized",
"dropUndefinedKeys",
"inputValue",
"_dropUndefinedKeys",
"Map",
"memoizationMap",
"memoVal",
"returnValue",
"makePromiseBuffer",
"remove",
"task",
"$",
"taskProducer",
"counter",
"capturedSetTimeout",
"isRateLimited",
"limits",
"all",
"disabledUntil",
"updateRateLimits",
"updatedRateLimits",
"rateLimitHeader",
"retryAfterHeader",
"trim",
"retryAfter",
"categories",
"headerDelay",
"delay",
"headerDate",
"parse",
"parseRetryAfterHeader",
"validSeverityLevels",
"severityLevelFromString",
"createStackParser",
"parsers",
"sortedParsers",
"a",
"p",
"skipFirst",
"cleanedLine",
"localStack",
"firstFrameFunction",
"lastFrameFunction",
"stripSentryFramesAndReverse",
"stackParserFromStackParserOptions",
"defaultFunctionName",
"getFunctionName",
"truncate",
"max",
"substr",
"safeJoin",
"delimiter",
"output",
"stringMatchesSomePattern",
"testString",
"patterns",
"requireExactStringMatch",
"pattern",
"isMatchingPattern",
"supportsFetch",
"Headers",
"Response",
"isNativeFetch",
"supportsNativeFetch",
"doc",
"supportsHistory",
"chrome",
"isChromePackagedApp",
"app",
"runtime",
"hasHistoryApi",
"pushState",
"replaceState",
"States",
"resolvedSyncPromise",
"SyncPromise",
"rejectedSyncPromise",
"_state",
"PENDING",
"_handlers",
"executor",
"__init5",
"__init6",
"_resolve",
"_reject",
"onfulfilled",
"onrejected",
"_executeHandlers",
"catch",
"val",
"finally",
"onfinally",
"isRejected",
"_setResult",
"RESOLVED",
"REJECTED",
"state",
"_value",
"cachedHandlers",
"dateTimestampSource",
"nowSeconds",
"platformPerformance",
"performance",
"getNodePerformance",
"timeOrigin",
"getBrowserPerformance",
"timestampSource",
"dateTimestampInSeconds",
"timestampInSeconds",
"_browserPerformanceTimeOriginMode",
"threshold",
"performanceNow",
"dateNow",
"timeOriginDelta",
"abs",
"timeOriginIsReliable",
"navigationStart",
"timing",
"navigationStartDelta",
"parseUrl",
"query",
"fragment",
"isGlobalObj",
"GLOBAL_OBJ",
"globalThis",
"getGlobalObject",
"getGlobalSingleton",
"creator",
"PacketKind",
"__makeTemplateObject",
"cooked",
"raw",
"AnsiUp",
"VERSION",
"setup_palettes",
"_use_classes",
"bold",
"italic",
"underline",
"fg",
"bg",
"_buffer",
"_url_whitelist",
"enumerable",
"_this",
"ansi_colors",
"rgb",
"class_name",
"palette_256",
"palette",
"rec",
"levels",
"r",
"col",
"grey_level",
"gry",
"escape_txt_for_html",
"txt",
"append_buffer",
"get_next_packet",
"pkt",
"kind",
"EOS",
"text",
"pos",
"Text",
"Incomplete",
"next_char",
"charAt",
"ESC",
"_csi_regex",
"rgx",
"Unknown",
"SGR",
"rpos",
"_osc_st",
"rgxG",
"lastIndex",
"match_1",
"match_2",
"_osc_regex",
"OSCURL",
"ansi_to_html",
"blocks",
"packet",
"transform_to_html",
"with_state",
"process_ansi",
"process_hyperlink",
"sgr_cmds",
"sgr_cmd_str",
"shift",
"num",
"is_foreground",
"mode_cmd",
"palette_index",
"styles",
"class_string",
"style_string",
"tmplObj",
"subst",
"_i",
"wsrgx",
"txt2",
"RegExp",
"default",
"BREAKPOINT_MD",
"staticAsset",
"handleFetchError",
"ok",
"asset",
"__STATIC__",
"removeUrlFragment",
"title",
"pathname",
"search",
"selectText",
"startNode",
"endNode",
"selection",
"getSelection",
"removeAllRanges",
"range",
"createRange",
"setStart",
"nodeName",
"setEnd",
"childNodes",
"textContent",
"addRange",
"showBadgeInfoModal",
"objectType",
"objectSWHID",
"badgeImageUrl",
"badgeLinkUrl",
"Urls",
"swh_badge",
"browse_origin",
"objectSWHIDNoContext",
"swh_badge_swhid",
"each",
"swhid",
"browse_swhid",
"absoluteBadgeImageUrl",
"origin",
"absoluteBadgeLinkUrl",
"html",
"swh",
"webapp",
"showModalHtml",
"highlightCode",
"firstHighlightedLine",
"highlightLine",
"firstHighlighted",
"lineTd",
"css",
"highlightLines",
"first",
"last",
"resetHighlightedLines",
"scrollToLine",
"lineDomElt",
"closest",
"animate",
"scrollTop",
"top",
"showLineNumbers",
"selector",
"enableLinesSelection",
"parseUrlFragmentForLinesToHighlight",
"lines",
"linesRegexp",
"hash",
"ready",
"elt",
"hljs",
"highlightElement",
"lineNumbersElement",
"singleLine",
"click",
"classList",
"contains",
"shiftKey",
"firstLine",
"on",
"drawHistoryCounterGraph",
"container",
"historyData",
"updateTooltip",
"x0",
"xScale",
"invert",
"d3",
"pointer",
"bisectDate",
"d0",
"d1",
"d",
"focus",
"yScale",
"tooltipText",
"dateFormatter",
"valueFormatter",
"tooltip",
"style",
"pageX",
"pageY",
"select",
"width",
"margin",
"right",
"bottom",
"left",
"svg",
"ceil",
"firstPoint",
"lastPoint",
"scaleTime",
"rangeRound",
"nice",
"scaleLinear",
"x",
"y",
"timeFormat",
"v",
"format",
"bisector",
"axisBottom",
"ticks",
"tickFormat",
"selectAll",
"axisRight",
"datum",
"transition",
"typesetMath",
"MathJax",
"chtml",
"fontURL",
"tex",
"useLabelIds",
"inlineMath",
"displayMath",
"processEscapes",
"processEnvironments",
"ansiup",
"escapeHTML",
"unescapeHTML",
"escapeLaTeX",
"bm",
"im",
"le",
"blockMath",
"latexEnvironment",
"mathTextFound",
"mathText",
"escapedText",
"specialLaTexChar",
"renderNotebook",
"nbJsonUrl",
"domElt",
"renderMarkdown",
"renderAnsi",
"preElt",
"codeElt",
"lang",
"getLanguage",
"highlight",
"language",
"converter",
"showdown",
"Converter",
"tables",
"simplifiedAutoLink",
"rawHeaderId",
"literalMidWordUnderscores",
"rendered",
"makeHtml",
"nb",
"markdown",
"highlighter",
"ansi",
"json",
"nbJson",
"notebook",
"filterXSS",
"render",
"parent",
"escape_for_html",
"renderPdf",
"pdfUrl",
"renderPage",
"queueRenderPage",
"onPrevPage",
"onNextPage",
"pageNum",
"pdfDoc",
"numPages",
"pageRendering",
"pageNumPending",
"getPage",
"page",
"divWidth",
"scale",
"min",
"defaultScale",
"getViewport",
"viewport",
"canvas",
"renderContext",
"canvasContext",
"ctx",
"getContext",
"pdfjs",
"GlobalWorkerOptions",
"workerSrc",
"getDocument",
"pdf",
"markdownDocUrl",
"showdownHighlight",
"classAttr",
"helper",
"replaceRecursiveRegExp",
"wholeMatch",
"decode",
"attrIndex",
"URL",
"searchParams",
"hostname",
"setFlavor",
"TypeError",
"addClass",
"renderOrgData",
"orgDocData",
"org",
"Parser",
"orgDocument",
"toc",
"orgHTMLDocument",
"convert",
"ConverterHTML",
"renderOrg",
"orgDocUrl",
"renderTxt",
"txtDocUrl",
"orgMode",
"sentryInit",
"sentryDsn",
"Sentry",
"sentryCaptureException",
"exc",
"statusCodeColor",
"initStatusWidget",
"statusDataURL",
"maxStatusCode",
"maxStatusDescription",
"sc",
"sd",
"s",
"removeClass",
"swhObjectIcons",
"ensureNoFooterOverflow",
"outerHeight",
"initPage",
"sessionStorage",
"setItem",
"initHomePage",
"iFrameResize",
"heightCalculationMethod",
"stat_counters",
"isEmptyObject",
"count",
"toLocaleString",
"hide",
"stat_counters_history",
"showModalMessage",
"modal",
"showModalConfirm",
"unbind",
"addJumpToPagePopoverToDataTable",
"dataTableElt",
"pageInfo",
"info",
"content",
"pages",
"selected",
"popover",
"pageNumber",
"draw",
"setSwhObjectIcons",
"icons",
"getSwhObjectIcon",
"swhObjectType",
"lastBrowsePage",
"getItem",
"preventDefault",
"mainSideBar",
"updateSidebarState",
"hasClass",
"Cookies",
"resize",
"objectFitImages",
"selectedCode",
"getCodeOrPreEltUnderPointer",
"clientX",
"clientY",
"elementsFromPoint",
"selectCode",
"hljsLnCodeElts",
"find",
"firstChild",
"lastChild",
"dblclick",
"ctrlKey",
"metaKey",
"keydown",
"scrollThreshold",
"scroll",
"submit",
"checkValidity",
"searchQueryText",
"queryParameters",
"URLSearchParams",
"browse_search",
"browsedSwhObjectMetadata",
"setBrowsedSwhObjectMetadata",
"getBrowsedSwhObjectMetadata",
"swhidsContext_",
"setSwhIdsContext",
"swhidsContext",
"swhidContext",
"object_type",
"getSwhIdsContext",
"setFullWidth",
"fullWidth",
"localStorage",
"fullWidthToggled",
"setContainerFullWidth",
"previousFullWidthState",
"coreSWHIDIsLowerCase",
"qualifiersPos",
"coreSWHID",
"validateSWHIDInput",
"swhidInputElt",
"swhidInput",
"customValidity",
"resolveSWHIDUrl",
"api_1_resolve_swhid",
"responseData",
"setCustomValidity",
"siblings",
"isUserLoggedIn",
"DOMPurify",
"node",
"attrName",
"attrValue",
"directory",
"swhObjectMetadata",
"object_id",
"directoryUrl",
"browse_directory_resolve_content_path",
"processedPath",
"_typeof",
"Symbol",
"iterator",
"_setPrototypeOf",
"o",
"__proto__",
"_isNativeReflectConstruct",
"Reflect",
"construct",
"sham",
"Proxy",
"valueOf",
"_construct",
"Parent",
"Class",
"instance",
"_toConsumableArray",
"arr",
"_arrayWithoutHoles",
"_iterableToArray",
"_unsupportedIterableToArray",
"_nonIterableSpread",
"_arrayLikeToArray",
"iter",
"minLen",
"n",
"arr2",
"isFrozen",
"freeze",
"seal",
"create",
"_ref",
"fun",
"thisValue",
"Func",
"arrayForEach",
"unapply",
"arrayPop",
"arrayPush",
"stringToLowerCase",
"stringToString",
"stringMatch",
"stringReplace",
"stringIndexOf",
"stringTrim",
"regExpTest",
"typeErrorCreate",
"unconstruct",
"thisArg",
"_len",
"_len2",
"_key2",
"addToSet",
"array",
"transformCaseFunc",
"l",
"element",
"lcElement",
"clone",
"newObject",
"lookupGetter",
"desc",
"fallbackValue",
"html$1",
"svg$1",
"svgFilters",
"svgDisallowed",
"mathMl$1",
"mathMlDisallowed",
"mathMl",
"xml",
"MUSTACHE_EXPR",
"ERB_EXPR",
"TMPLIT_EXPR",
"DATA_ATTR",
"ARIA_ATTR",
"IS_ALLOWED_URI",
"IS_SCRIPT_OR_DATA",
"ATTR_WHITESPACE",
"DOCTYPE_NAME",
"getGlobal",
"_createTrustedTypesPolicy",
"trustedTypes",
"createPolicy",
"suffix",
"ATTR_NAME",
"currentScript",
"hasAttribute",
"policyName",
"createHTML",
"createScriptURL",
"scriptUrl",
"createDOMPurify",
"removed",
"nodeType",
"isSupported",
"originalDocument",
"DocumentFragment",
"HTMLTemplateElement",
"Node",
"NodeFilter",
"_window$NamedNodeMap",
"NamedNodeMap",
"MozNamedAttrMap",
"HTMLFormElement",
"DOMParser",
"ElementPrototype",
"cloneNode",
"getNextSibling",
"getChildNodes",
"getParentNode",
"template",
"ownerDocument",
"trustedTypesPolicy",
"emptyHTML",
"_document",
"implementation",
"createNodeIterator",
"createDocumentFragment",
"getElementsByTagName",
"importNode",
"documentMode",
"hooks",
"createHTMLDocument",
"PARSER_MEDIA_TYPE",
"MUSTACHE_EXPR$1",
"ERB_EXPR$1",
"TMPLIT_EXPR$1",
"DATA_ATTR$1",
"ARIA_ATTR$1",
"IS_SCRIPT_OR_DATA$1",
"ATTR_WHITESPACE$1",
"IS_ALLOWED_URI$1",
"ALLOWED_TAGS",
"DEFAULT_ALLOWED_TAGS",
"ALLOWED_ATTR",
"DEFAULT_ALLOWED_ATTR",
"CUSTOM_ELEMENT_HANDLING",
"tagNameCheck",
"attributeNameCheck",
"allowCustomizedBuiltInElements",
"FORBID_TAGS",
"FORBID_ATTR",
"ALLOW_ARIA_ATTR",
"ALLOW_DATA_ATTR",
"ALLOW_UNKNOWN_PROTOCOLS",
"SAFE_FOR_TEMPLATES",
"WHOLE_DOCUMENT",
"SET_CONFIG",
"FORCE_BODY",
"RETURN_DOM",
"RETURN_DOM_FRAGMENT",
"RETURN_TRUSTED_TYPE",
"SANITIZE_DOM",
"SANITIZE_NAMED_PROPS",
"SANITIZE_NAMED_PROPS_PREFIX",
"KEEP_CONTENT",
"IN_PLACE",
"USE_PROFILES",
"FORBID_CONTENTS",
"DEFAULT_FORBID_CONTENTS",
"DATA_URI_TAGS",
"DEFAULT_DATA_URI_TAGS",
"URI_SAFE_ATTRIBUTES",
"DEFAULT_URI_SAFE_ATTRIBUTES",
"MATHML_NAMESPACE",
"SVG_NAMESPACE",
"HTML_NAMESPACE",
"NAMESPACE",
"IS_EMPTY_INPUT",
"ALLOWED_NAMESPACES",
"DEFAULT_ALLOWED_NAMESPACES",
"SUPPORTED_PARSER_MEDIA_TYPES",
"DEFAULT_PARSER_MEDIA_TYPE",
"CONFIG",
"formElement",
"isRegexOrFunction",
"testValue",
"_parseConfig",
"cfg",
"ADD_URI_SAFE_ATTR",
"ADD_DATA_URI_TAGS",
"ALLOWED_URI_REGEXP",
"ADD_TAGS",
"ADD_ATTR",
"table",
"tbody",
"MATHML_TEXT_INTEGRATION_POINTS",
"HTML_INTEGRATION_POINTS",
"COMMON_SVG_AND_HTML_ELEMENTS",
"ALL_SVG_TAGS",
"ALL_MATHML_TAGS",
"_checkValidNamespace",
"namespaceURI",
"parentTagName",
"_forceRemove",
"outerHTML",
"_removeAttribute",
"attribute",
"getAttributeNode",
"removeAttribute",
"setAttribute",
"_initDocument",
"dirty",
"leadingWhitespace",
"matches",
"dirtyPayload",
"parseFromString",
"documentElement",
"createDocument",
"innerHTML",
"insertBefore",
"createTextNode",
"_createIterator",
"SHOW_ELEMENT",
"SHOW_COMMENT",
"SHOW_TEXT",
"_isClobbered",
"elm",
"attributes",
"hasChildNodes",
"_isNode",
"_executeHook",
"entryPoint",
"currentNode",
"hook",
"_sanitizeElements",
"allowedTags",
"firstElementChild",
"_basicCustomElementTest",
"_isValidAttribute",
"lcTag",
"lcName",
"_sanitizeAttributes",
"hookEvent",
"keepAttr",
"allowedAttributes",
"_attr",
"forceKeepAttr",
"getAttributeType",
"setAttributeNS",
"_sanitizeShadowDOM",
"shadowNode",
"shadowIterator",
"nextNode",
"sanitize",
"importedNode",
"oldNode",
"returnNode",
"toStaticHTML",
"nodeIterator",
"shadowroot",
"serializedHTML",
"doctype",
"setConfig",
"clearConfig",
"isValidAttribute",
"tag",
"addHook",
"hookFunction",
"removeHook",
"removeHooks",
"removeAllHooks",
"freeExports",
"freeGlobal",
"regexAstralSymbols",
"regexAsciiWhitelist",
"regexBmpWhitelist",
"regexEncodeNonAscii",
"encodeMap",
"regexEscape",
"escapeMap",
"regexInvalidEntity",
"regexInvalidRawCodePoint",
"regexDecode",
"decodeMap",
"decodeMapLegacy",
"decodeMapNumeric",
"invalidReferenceCodePoints",
"stringFromCharCode",
"fromCharCode",
"propertyName",
"merge",
"defaults",
"codePointToSymbol",
"codePoint",
"strict",
"parseError",
"hexEscape",
"decEscape",
"string",
"encodeEverything",
"useNamedReferences",
"allowUnsafeSymbols",
"escapeCodePoint",
"decimal",
"escapeBmpSymbol",
"symbol",
"charCodeAt",
"$0",
"high",
"low",
"$1",
"$2",
"$3",
"$4",
"$5",
"$6",
"$7",
"$8",
"semicolon",
"decDigits",
"hexDigits",
"reference",
"isAttributeValue",
"he",
"OFI",
"propRegex",
"testImg",
"Image",
"supportsObjectFit",
"supportsObjectPosition",
"supportsOFI",
"supportsCurrentSrc",
"currentSrc",
"nativeGetAttribute",
"nativeSetAttribute",
"autoModeEnabled",
"setPlaceholder",
"img",
"placeholder",
"onImageReady",
"naturalWidth",
"fixOne",
"parsed",
"getComputedStyle",
"fontFamily",
"props",
"getStyle",
"ofi",
"skipTest",
"srcset",
"src",
"naturalHeight",
"descriptors",
"ss",
"keepSrcUsable",
"picturefill",
"pf",
"ns",
"evaled",
"fillImg",
"reselect",
"curSrc",
"supported",
"polyfillCurrentSrc",
"backgroundImage",
"backgroundPosition",
"backgroundRepeat",
"backgroundOrigin",
"backgroundSize",
"fix",
"imgs",
"opts",
"startAutoMode",
"querySelectorAll",
"watchMQ",
"getOfiImageMaybe",
"HTMLImageElement",
"hijackAttributes",
"Op",
"hasOwn",
"$Symbol",
"iteratorSymbol",
"asyncIteratorSymbol",
"asyncIterator",
"toStringTagSymbol",
"toStringTag",
"innerFn",
"outerFn",
"tryLocsList",
"protoGenerator",
"Generator",
"generator",
"Context",
"makeInvokeMethod",
"tryCatch",
"GenStateSuspendedStart",
"GenStateExecuting",
"GenStateCompleted",
"ContinueSentinel",
"GeneratorFunction",
"GeneratorFunctionPrototype",
"IteratorPrototype",
"NativeIteratorPrototype",
"Gp",
"defineIteratorMethods",
"_invoke",
"AsyncIterator",
"PromiseImpl",
"invoke",
"record",
"__await",
"unwrapped",
"previousPromise",
"callInvokeWithMethodAndArg",
"doneResult",
"delegate",
"delegateResult",
"maybeInvokeDelegate",
"sent",
"_sent",
"dispatchException",
"abrupt",
"done",
"resultName",
"nextLoc",
"pushTryEntry",
"locs",
"entry",
"tryLoc",
"catchLoc",
"finallyLoc",
"afterLoc",
"tryEntries",
"resetTryEntry",
"completion",
"reset",
"iterable",
"iteratorMethod",
"displayName",
"isGeneratorFunction",
"genFun",
"ctor",
"mark",
"awrap",
"async",
"Promise",
"skipTempReset",
"prev",
"stop",
"rootRecord",
"rval",
"handle",
"loc",
"caught",
"hasCatch",
"hasFinally",
"finallyEntry",
"complete",
"finish",
"thrown",
"delegateYield",
"regeneratorRuntime",
"accidentalStrictMode",
"RegexEscape",
"escape",
"execScript",
"attachEvent",
"eval",
"asyncGeneratorStep",
"gen",
"_next",
"_throw",
"_asyncToGenerator",
"assign",
"api",
"defaultAttributes",
"expires",
"toUTCString",
"decodeURIComponent",
"stringifiedAttributes",
"attributeName",
"cookie",
"write",
"cookies",
"jar",
"foundKey",
"read",
"withAttributes",
"withConverter",
"__webpack_module_cache__",
"__webpack_require__",
"moduleId",
"cachedModule",
"loaded",
"__webpack_modules__",
"m",
"getter",
"__esModule",
"t",
"mode",
"def",
"getOwnPropertyNames",
"definition",
"f",
"chunkId",
"promises",
"u",
"miniCssF",
"hmd",
"children",
"script",
"needAttach",
"scripts",
"charset",
"nc",
"onScriptComplete",
"onload",
"doneFns",
"nmd",
"paths",
"fullhref",
"existingLinkTags",
"dataHref",
"rel",
"existingStyleTags",
"findStylesheet",
"linkTag",
"errorType",
"realHref",
"createStylesheet",
"miniCss",
"installedChunks",
"j",
"installedChunkData",
"realSrc",
"webpackJsonpCallback",
"parentChunkLoadingFunction",
"chunkIds",
"moreModules",
"chunkLoadingGlobal",
"_global",
"SENTRY_RELEASE",
"SENTRY_RELEASES"
],
"sourceRoot": ""
}

File Metadata

Mime Type
application/json
Expires
Thu, Jul 3, 12:02 PM (2 d, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3383925

Event Timeline