Page MenuHomeSoftware Heritage

webapp.9df202ed4c4363c864ce.js.map
No OneTemporary

webapp.9df202ed4c4363c864ce.js.map

{
"version": 3,
"file": "js/webapp.9df202ed4c4363c864ce.js",
"mappings": "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AAQ,KAAe,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAO,SAAS,IAAO,OAAO,EAAI,SAAS,IAAO,QAAQ,IAAO,MAAM,IAAS,OAAO,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,MAAM,IAAO,MAAM,IAAS,KAAK,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,GAAK,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,IAAS,UAAU,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,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,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,UAAU,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,O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",
"sources": [
"webpack://swh.webapp/webpack/universalModuleDefinition",
"webpack://swh.webapp/webpack/runtime/create fake namespace object",
"webpack://swh.webapp/webpack/runtime/load script",
"webpack://swh.webapp/webpack/runtime/css loading",
"webpack://swh.webapp/./node_modules/@babel/runtime/helpers/asyncToGenerator.js",
"webpack://swh.webapp/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js",
"webpack://swh.webapp/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js",
"webpack://swh.webapp/./node_modules/@babel/runtime/regenerator/index.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/backend.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/client.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/eventbuilder.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/helpers.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/dedupe.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/linkederrors.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/trycatch.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/useragent.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/parsers.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/sdk.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/tracekit.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/base.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/fetch.js",
"webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/xhr.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/api.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/basebackend.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/baseclient.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/integration.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/functiontostring.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/inboundfilters.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/request.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/sdk.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/transports/noop.js",
"webpack://swh.webapp/./node_modules/@sentry/core/esm/version.js",
"webpack://swh.webapp/./node_modules/@sentry/hub/esm/hub.js",
"webpack://swh.webapp/./node_modules/@sentry/hub/esm/scope.js",
"webpack://swh.webapp/./node_modules/@sentry/hub/esm/session.js",
"webpack://swh.webapp/./node_modules/@sentry/minimal/esm/index.js",
"webpack://swh.webapp/./node_modules/@sentry/types/esm/session.js",
"webpack://swh.webapp/./node_modules/@sentry/types/esm/severity.js",
"webpack://swh.webapp/./node_modules/@sentry/types/esm/status.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/browser.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/dsn.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/error.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/instrument.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/is.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/logger.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/memo.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/misc.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/node.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/object.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/polyfill.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/promisebuffer.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/stacktrace.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/string.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/supports.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/syncpromise.js",
"webpack://swh.webapp/./node_modules/@sentry/utils/esm/time.js",
"webpack://swh.webapp/./node_modules/ansi_up/ansi_up.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/badges.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/code-highlighting.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/history-counters.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/math-typesetting.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/notebook-rendering.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/pdf-rendering.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/readme-rendering.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/sentry.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/status-widget.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/webapp-utils.js",
"webpack://swh.webapp/./assets/src/bundles/webapp/xss-filtering.js",
"webpack://swh.webapp/./assets/src/utils/constants.js",
"webpack://swh.webapp/./assets/src/utils/functions.js",
"webpack://swh.webapp/./node_modules/dompurify/dist/purify.js",
"webpack://swh.webapp/./node_modules/he/he.js",
"webpack://swh.webapp/./node_modules/html-encoder-decoder/lib/index.js",
"webpack://swh.webapp/./node_modules/iterate-object/lib/index.js",
"webpack://swh.webapp/./node_modules/object-fit-images/dist/ofi.common-js.js",
"webpack://swh.webapp/./node_modules/notebookjs/notebook.js",
"webpack://swh.webapp/./node_modules/regex-escape/lib/index.js",
"webpack://swh.webapp/./node_modules/script-loader/addScript.js",
"webpack://swh.webapp/./node_modules/notebookjs/notebook.js?2bc4",
"webpack://swh.webapp/./node_modules/tslib/tslib.es6.js",
"webpack://swh.webapp/./node_modules/js-cookie/dist/js.cookie.mjs",
"webpack://swh.webapp/webpack/bootstrap",
"webpack://swh.webapp/webpack/runtime/compat get default export",
"webpack://swh.webapp/webpack/runtime/define property getters",
"webpack://swh.webapp/webpack/runtime/ensure chunk",
"webpack://swh.webapp/webpack/runtime/get javascript chunk filename",
"webpack://swh.webapp/webpack/runtime/get mini-css chunk filename",
"webpack://swh.webapp/webpack/runtime/global",
"webpack://swh.webapp/webpack/runtime/harmony module decorator",
"webpack://swh.webapp/webpack/runtime/hasOwnProperty shorthand",
"webpack://swh.webapp/webpack/runtime/make namespace object",
"webpack://swh.webapp/webpack/runtime/node module decorator",
"webpack://swh.webapp/webpack/runtime/publicPath",
"webpack://swh.webapp/webpack/runtime/jsonp chunk loading"
],
"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.webapp:\";\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\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",
"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\nfunction _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}\n\nmodule.exports = _asyncToGenerator;",
"/**\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\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\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\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\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 var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\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 generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.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 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 = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\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 prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.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 runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\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 runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\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 Promise.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 Promise.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 Promise(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 this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.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 runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.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 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 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 Gp[iteratorSymbol] = function() {\n return this;\n };\n\n 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 runtime.keys = function(object) {\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 runtime.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 // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n",
"module.exports = require(\"regenerator-runtime\");\n",
"import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, tunnel: this._options.tunnel, _metadata: this._options._metadata });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map",
"import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\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 _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map",
"import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options, exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\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(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map",
"import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\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.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\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 /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\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 }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\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 Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n}\n//# sourceMappingURL=helpers.js.map",
"import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\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 Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\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 }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n var keyAttrs = typeof this._options.dom === 'object' ? this._options.dom.serializeAttribute : undefined;\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\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 }\n catch (e) {\n target = '<unknown>';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\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 if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\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 getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map",
"/** Deduplication filter */\nvar Dedupe = /** @class */ (function () {\n function Dedupe() {\n /**\n * @inheritDoc\n */\n this.name = Dedupe.id;\n }\n /**\n * @inheritDoc\n */\n Dedupe.prototype.setupOnce = function (addGlobalEventProcessor, getCurrentHub) {\n addGlobalEventProcessor(function (currentEvent) {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (self._shouldDropEvent(currentEvent, self._previousEvent)) {\n return null;\n }\n }\n catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n };\n /** JSDoc */\n Dedupe.prototype._shouldDropEvent = function (currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n if (this._isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n if (this._isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n return false;\n };\n /** JSDoc */\n Dedupe.prototype._isSameMessageEvent = function (currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\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 if (currentMessage !== previousMessage) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getFramesFromEvent = function (event) {\n var exception = event.exception;\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n }\n catch (_oO) {\n return undefined;\n }\n }\n else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n };\n /** JSDoc */\n Dedupe.prototype._isSameStacktrace = function (currentEvent, previousEvent) {\n var currentFrames = this._getFramesFromEvent(currentEvent);\n var previousFrames = this._getFramesFromEvent(previousEvent);\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\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 currentFrames = currentFrames;\n previousFrames = previousFrames;\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n // Otherwise, compare the two\n for (var i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n if (frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function) {\n return false;\n }\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getExceptionFromEvent = function (event) {\n return event.exception && event.exception.values && event.exception.values[0];\n };\n /** JSDoc */\n Dedupe.prototype._isSameExceptionEvent = function (currentEvent, previousEvent) {\n var previousException = this._getExceptionFromEvent(previousEvent);\n var currentException = this._getExceptionFromEvent(currentEvent);\n if (!previousException || !currentException) {\n return false;\n }\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._isSameFingerprint = function (currentEvent, previousEvent) {\n var currentFingerprint = currentEvent.fingerprint;\n var previousFingerprint = previousEvent.fingerprint;\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\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 currentFingerprint = currentFingerprint;\n previousFingerprint = previousFingerprint;\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n }\n catch (_oO) {\n return false;\n }\n };\n /**\n * @inheritDoc\n */\n Dedupe.id = 'Dedupe';\n return Dedupe;\n}());\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map",
"import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n if (this._onErrorHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n var client = currentHub.getClient();\n var event = error === undefined && isString(data.msg)\n ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error || data.msg, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (e) {\n var error = e;\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 }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n return;\n },\n type: 'unhandledrejection',\n });\n this._onUnhandledRejectionHandlerInstalled = true;\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\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\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 */\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (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 /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map",
"import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n var handler = self._handler && self._handler.bind(self);\n return typeof handler === 'function' ? handler(event, hint) : event;\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map",
"import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar 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/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var 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 /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TryCatch.prototype._wrapRAF = function (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.call(this, 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 /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, 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: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\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 var wrappedEventHandler = fn;\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\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 /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (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 var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map",
"import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map",
"import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\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 // 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 // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map",
"import { __assign } from \"tslib\";\nimport { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\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 */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\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 */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n options.user = __assign(__assign({}, scope.getUser()), options.user);\n }\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n var client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\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 */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n logger.warn('Cannot flush events. No client defined.');\n return SyncPromise.resolve(false);\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 */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n logger.warn('Cannot flush events and disable SDK. No client defined.');\n return SyncPromise.resolve(false);\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\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\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 (typeof hub.startSession !== 'function' || typeof hub.captureSession !== 'function') {\n return;\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 hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: function (_a) {\n var from = _a.from, to = _a.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 return;\n }\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n },\n type: 'history',\n });\n}\n//# sourceMappingURL=sdk.js.map",
"/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\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.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n }\n else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\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 // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n var url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];\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 var func = parts[1] || UNKNOWN_FUNCTION;\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n if (isSafariExtension || isSafariWebExtension) {\n func = func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION;\n url = isSafariExtension ? \"safari-extension:\" + url : \"safari-web-extension:\" + url;\n }\n element = {\n url: url,\n func: func,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\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 else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\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 var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex) {\n var 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//# sourceMappingURL=tracekit.js.map",
"import { __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status, } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\nvar CATEGORY_MAPPING = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n attachment: 'attachment',\n};\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._api = new API(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n var limited = this._handleRateLimit(headers);\n if (limited)\n logger.warn(\"Too many \" + requestType + \" requests, backing off until: \" + this._disabledUntil(requestType));\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n return this._disabledUntil(requestType) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n if (rlHeader) {\n try {\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 ms\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 for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n }\n else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map",
"import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { getGlobalObject, isNativeFetch, logger, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\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 /* eslint-disable @typescript-eslint/unbound-method */\n var _a, _b;\n // Fast path to avoid DOM I/O\n var global = getGlobalObject();\n if (isNativeFetch(global.fetch)) {\n return global.fetch.bind(global);\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof ((_a = document) === null || _a === void 0 ? void 0 : _a.createElement) === \"function\") {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if ((_b = sandbox.contentWindow) === null || _b === void 0 ? void 0 : _b.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return fetchImpl.bind(global);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer.add(function () {\n return new SyncPromise(function (resolve, reject) {\n void _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n });\n });\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map",
"import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(function () {\n return new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n });\n });\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map",
"import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata, tunnel) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Does this transport force envelopes? */\n API.prototype.forceEnvelope = function () {\n return !!this._tunnel;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this.getDsn();\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store 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 */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\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 */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n if (this.forceEnvelope()) {\n return this._tunnel;\n }\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this.getDsn();\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var dsn = this.getDsn();\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this.getDsn();\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n API.prototype._getIngestEndpoint = function (target) {\n if (this._tunnel) {\n return this._tunnel;\n }\n var base = this.getBaseApiEndpoint();\n var dsn = this.getDsn();\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n API.prototype._encodedAuth = function () {\n var dsn = this.getDsn();\n var auth = {\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 };\n return urlEncode(auth);\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map",
"import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n void this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n void this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map",
"import { __assign, __read, __spread, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { SessionStatus, } from '@sentry/types';\nimport { dateTimestampInSeconds, Dsn, isPlainObject, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\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 via the backend, 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<NodeBackend, NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of calls being processed */\n this._numProcessing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!this._isEnabled()) {\n logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n if (!(typeof session.release === 'string')) {\n logger.warn('Discarded session because of missing or non-string release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientDoneProcessing(timeout).then(function (clientFinished) {\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return clientFinished && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\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 var sessionNonTerminal = session.status === SessionStatus.Ok;\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n if (shouldUpdateAndSend) {\n session.update(__assign(__assign({}, (crashed && { status: SessionStatus.Crashed })), { errors: session.errors || Number(errored || crashed) }));\n this.captureSession(session);\n }\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\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 BaseClient.prototype._isClientDoneProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\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 BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions().normalizeDepth, normalizeDepth = _a === void 0 ? 3 : _a;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\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 var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\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 // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\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 BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n })), (event.extra && {\n extra: normalize(event.extra, depth),\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) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n var _a = this.getOptions()._experiments, _experiments = _a === void 0 ? {} : _a;\n if (_experiments.ensureNoCircularStructures) {\n return normalize(normalized);\n }\n return normalized;\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 BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\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 BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = __spread((event.sdk.integrations || []), integrationsArray);\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\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 BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\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 BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not capture event.'));\n }\n var isTransaction = event.type === 'transaction';\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 return SyncPromise.reject(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n return _this._ensureBeforeSendRv(beforeSendResult);\n })\n .then(function (processedEvent) {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"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 * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._numProcessing += 1;\n void promise.then(function (value) {\n _this._numProcessing -= 1;\n return value;\n }, function (reason) {\n _this._numProcessing -= 1;\n return reason;\n });\n };\n /**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\n BaseClient.prototype._ensureBeforeSendRv = function (rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(function (event) {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map",
"import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce(function (acc, integrations) {\n if (acc.every(function (accIntegration) { return integrations.name !== accIntegration.name; })) {\n acc.push(integrations);\n }\n return acc;\n }, []);\n}\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = __spread(filterDuplicates(defaultIntegrations));\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = __spread(integrations.filter(function (integrations) {\n return userIntegrations.every(function (userIntegration) { return userIntegration.name !== integrations.name; });\n }), filterDuplicates(userIntegrations));\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\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 */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n Object.defineProperty(integrations, 'initialized', { value: true });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map",
"var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map",
"import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\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.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n var options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((this._options.whitelistUrls || []), (this._options.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((this._options.blacklistUrls || []), (this._options.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getLastValidUrl = function (frames) {\n if (frames === void 0) { frames = []; }\n var _a;\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n if (((_a = frame) === null || _a === void 0 ? void 0 : _a.filename) !== '<anonymous>') {\n return frame.filename || null;\n }\n }\n return null;\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return this._getLastValidUrl(frames_1);\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return this._getLastValidUrl(frames_2);\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map",
"import { __assign, __read, __rest, __spread } from \"tslib\";\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\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 = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = JSON.stringify(__assign(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n // I know this is hacky but we don't want to add `session` to request type since it's never rate limited\n var type = 'aggregates' in session ? 'sessions' : 'session';\n var itemHeaders = JSON.stringify({\n type: type,\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: type,\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction' || api.forceEnvelope();\n var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = __rest(_a, [\"transactionSampling\"]);\n var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n }\n else {\n event.debug_meta = metadata;\n }\n var req = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify(__assign(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n var itemHeaders = JSON.stringify({\n type: eventType,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n return req;\n}\n//# sourceMappingURL=request.js.map",
"import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\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 */\nexport function initAndBind(clientClass, options) {\n var _a;\n if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n (_a = hub.getScope()) === null || _a === void 0 ? void 0 : _a.update(options.initialScope);\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map",
"import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map",
"export var SDK_VERSION = '6.11.0';\n//# sourceMappingURL=version.js.map",
"import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable max-lines */\nimport { SessionStatus, } from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\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 */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\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 function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var _a, _b, _c, _d, _e;\n (_c = (_b = (_a = this.getStackTop()) === null || _a === void 0 ? void 0 : _a.scope) === null || _b === void 0 ? void 0 : _b.getSession()) === null || _c === void 0 ? void 0 : _c.close();\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n (_e = (_d = this.getStackTop()) === null || _d === void 0 ? void 0 : _d.scope) === null || _e === void 0 ? void 0 : _e.setSession();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\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 Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\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 **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\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 */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\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 // 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 * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\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 var _a, _b, _c;\n try {\n var activeDomain = (_c = (_b = (_a = getMainCarrier().__SENTRY__) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.domain) === null || _c === void 0 ? void 0 : _c.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\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 var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\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 * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub)\n return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\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 */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map",
"import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, 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 = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d;\n // often, this span will be a transaction, but it's not guaranteed to be\n var span = this.getSpan();\n // try it the new way first\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n }\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n // neither way found a transaction\n return undefined;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, 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 }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, 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 return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\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 return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, 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 // 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 = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\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(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\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 Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [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 // 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 return Scope;\n}());\nexport { Scope };\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map",
"import { SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. \u2014 Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map",
"import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\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 level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\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 */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\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 */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\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\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\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 */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\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 */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\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 */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\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 */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\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 */\nexport function setUser(user) {\n callOnHub('setUser', user);\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 */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\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 * @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 */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map",
"/**\n * Session Status\n */\nexport var SessionStatus;\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));\nexport var RequestSessionStatus;\n(function (RequestSessionStatus) {\n /** JSDoc */\n RequestSessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n RequestSessionStatus[\"Errored\"] = \"errored\";\n /** JSDoc */\n RequestSessionStatus[\"Crashed\"] = \"crashed\";\n})(RequestSessionStatus || (RequestSessionStatus = {}));\n//# sourceMappingURL=session.js.map",
"/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map",
"/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map",
"import { isString } from './is';\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 */\nexport function htmlTreeAsString(elem, keyAttrs) {\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 var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\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 out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '<unknown>';\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 var _a, _b;\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = ((_a = keyAttrs) === null || _a === void 0 ? void 0 : _a.length) ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if ((_b = keyAttrPairs) === null || _b === void 0 ? void 0 : _b.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\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 var 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//# sourceMappingURL=browser.js.map",
"import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\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 */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, publicKey = _a.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map",
"import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map",
"import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\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 */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\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 logger.warn('unknown instrumentation type:', type);\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 */\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\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/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && 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/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && 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/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n 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 // 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) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n try {\n var requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: 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 }\n catch (_oO) {\n // no-empty\n }\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var 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: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\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 // 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 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 }\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 // 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 * 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 try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\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 }\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 return true;\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) {\n if (globalListener === void 0) { globalListener = false; }\n return function (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 // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\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: 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: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\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 = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\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 var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\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(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[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 fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\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 return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\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_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\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 return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n//# sourceMappingURL=instrument.js.map",
"/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\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 */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\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 */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\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 */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\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 */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\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 */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's 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 */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\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 */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\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 */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\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 */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\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 */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function 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 * 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 */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\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 */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map",
"/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map",
"/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n//# sourceMappingURL=memo.js.map",
"import { isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\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 */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\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 */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '<unknown>';\n }\n return event.event_id || '<unknown>';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\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 */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(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 * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var 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}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\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 */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\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 */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n//# sourceMappingURL=misc.js.map",
"/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\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\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\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 */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map",
"import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\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 */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\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 wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\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 source[name] = wrapped;\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 */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n // Accessing event attributes can throw (see https://github.com/getsentry/sentry-javascript/issues/768 and\n // https://github.com/getsentry/sentry-javascript/issues/838), but accessing `type` hasn't been wrapped in a\n // try-catch in at least two years and no one's complained, so that's likely not an issue anymore\n source.type = event_1.type;\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '<unknown>';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '<unknown>';\n }\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var attr in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, attr)) {\n source[attr] = event_1[attr];\n }\n }\n return source;\n }\n return value;\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/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\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 */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var 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 return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n//# sourceMappingURL=object.js.map",
"export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map",
"import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\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 PromiseBuffer.prototype.add = function (taskProducer) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n void task\n .then(function () { return _this.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, function () {\n return _this.remove(task).then(null, function () {\n // We have to add another catch here because `this.remove()` starts a new promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\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 PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n // if all promises resolve in time, cancel the timer and resolve to `true`\n void SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map",
"var defaultFunctionName = '<anonymous>';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\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 return defaultFunctionName;\n }\n}\n//# sourceMappingURL=stacktrace.js.map",
"import { isRegExp, isString } from './is';\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 */\nexport function truncate(str, max) {\n if (max === void 0) { 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 * 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 */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\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\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=string.js.map",
"import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function 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 }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\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\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\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 */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\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 var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var 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 }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function 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 var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map",
"/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n if (_this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n if (_this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n handler.done = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n void SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: \u00af\\_(\u30c4)_/\u00af\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map",
"import { getGlobalObject } from './misc';\nimport { dynamicRequire, isNodeEnv } from './node';\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 */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\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 var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\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 var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\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 var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\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 */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\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 */\nexport var browserPerformanceTimeOrigin = (function () {\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 var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\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 var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\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//# sourceMappingURL=time.js.map",
"/* 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.0.1\";\n this.setup_palettes();\n this._use_classes = false;\n this.bold = 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, 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 }\n else if (num === 1) {\n this.bold = true;\n }\n else if (num === 22) {\n this.bold = 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.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 (!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-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 class=\"swh-badge-html\">&lt;a href=\"${absoluteBadgeLinkUrl}\"&gt;\n &lt;img src=\"${absoluteBadgeImageUrl}\"&gt;\n&lt;/a&gt;</pre>\n </div>\n <div>\n <label>Markdown</label>\n <pre class=\"swh-badge-md\">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</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}\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\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 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) {\n if ($(lineDomElt).closest('.swh-content').length > 0) {\n $('html, body').animate({\n scrollTop: $(lineDomElt).offset().top - 70\n }, 500);\n }\n}\n\nexport async function highlightCode(showLineNumbers = 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 for (let i = lines[0] + 1; i <= lines[lines.length - 1]; ++i) {\n highlightLine(i);\n }\n }\n }\n\n $(document).ready(() => {\n // highlight code and add line numbers\n $('code').each((i, elt) => {\n hljs.highlightElement(elt);\n if (showLineNumbers) {\n hljs.lineNumbersElement(elt, {singleLine: true});\n }\n });\n\n if (!showLineNumbers) {\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 for (let i = firstLine; i <= line; ++i) {\n highlightLine(i);\n }\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\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-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 objectFitImages from 'object-fit-images';\nimport {selectText} from 'utils/functions';\nimport {BREAKPOINT_MD} from 'utils/constants';\n\nlet collapseSidebar = false;\nconst previousSidebarState = localStorage.getItem('remember.lte.pushmenu');\nif (previousSidebarState !== undefined) {\n collapseSidebar = previousSidebarState === 'sidebar-collapse';\n}\n\n$(document).on('DOMContentLoaded', () => {\n // set state to collapsed on smaller devices\n if ($(window).width() < BREAKPOINT_MD) {\n collapseSidebar = true;\n }\n\n // restore previous sidebar state (collapsed/expanded)\n if (collapseSidebar) {\n // hack to avoid animated transition for collapsing sidebar\n // when loading a page\n const sidebarTransition = $('.main-sidebar, .main-sidebar:before').css('transition');\n const sidebarEltsTransition = $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition');\n $('.main-sidebar, .main-sidebar:before').css('transition', 'none');\n $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition', 'none');\n $('body').addClass('sidebar-collapse');\n $('.swh-words-logo-swh').css('visibility', 'visible');\n // restore transitions for user navigation\n setTimeout(() => {\n $('.main-sidebar, .main-sidebar:before').css('transition', sidebarTransition);\n $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition', sidebarEltsTransition);\n });\n }\n});\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 } 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 }\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 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 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-list').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) {\n $('#swh-web-modal-html .modal-title').text(title);\n $('#swh-web-modal-html .modal-body').html(html);\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-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 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 // used internal endpoint as image url to possibly get the image data\n // from the archive content\n let url = Urls.browse_directory_resolve_content_path(swhObjectMetadata.directory);\n url += `?path=${data.attrValue}`;\n data.attrValue = url;\n }\n});\n\nexport function filterXSS(html) {\n return DOMPurify.sanitize(html);\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-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\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 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 isValidURL(string) {\n try {\n new URL(string);\n } catch (_) {\n return false;\n }\n return true;\n}\n\nexport async function isArchivedOrigin(originPath) {\n if (!isValidURL(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\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 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 return originUrl;\n}\n",
"/*! @license DOMPurify 2.3.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.3.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 = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\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 new (Function.prototype.bind.apply(Func, [null].concat(_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\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\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\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = 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\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\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 while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\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\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\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 function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\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 = 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']);\n\n // SVG\n var svg = 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\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // 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 var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', '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\n var mathMl = 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']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = 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', '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\n var svg$1 = 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', '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\n var mathMl$1 = 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\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\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\n var _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 function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\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 var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\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 var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\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$$1) {\n return html$$1;\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 /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.1';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\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\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\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 === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // 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 if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\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\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_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 /**\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$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\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 var FORCE_BODY = false;\n\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 var RETURN_DOM = false;\n\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 var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\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 var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\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\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\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\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 var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\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);\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);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\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);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\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\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\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 var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\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 }\n\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 if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\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 }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\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 }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\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 /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\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);\n\n // We void attribute values for unremovable \"is\"\" attributes\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 /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\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 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 if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // 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\n /* Work on whole document or just its body */\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 /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\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 var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (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') {\n return true;\n }\n\n return false;\n };\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 var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\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 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 /**\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 var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for bad-listed elements */\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 return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\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 if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\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 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\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 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 return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\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 /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\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\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = stringToLowerCase(name);\n\n /* Execute a hook if present */\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 _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\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\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\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 DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\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 IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\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 if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\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\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; 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 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 &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\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\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\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 (RETURN_DOM_IMPORT) {\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\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\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 DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\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 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 /**\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 */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\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 DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\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.6\\\";\\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 = escapeHTML(joinText(text));\\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\"",
"\"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\"))",
"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n",
"/*! js-cookie v3.0.0 | 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 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 value = converter.write(value, key);\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 = key + '=' + value + 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 if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n\n try {\n var foundKey = defaultConverter.read(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\":\"b02f46435f38cc2d8ead\",\"399\":\"dfdcf19034e7466128a9\",\"509\":\"3309193ab418991a25cd\",\"522\":\"9de47fa35ce9116667c0\",\"684\":\"5b863a88bcd7fc73f3b0\",\"891\":\"35613564c32235d8ecd2\"}[chunkId] + \".js\";\n};",
"// This function allow to reference all 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\":\"fdb2f5350b5554094ca4\",\"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[chunkIds[i]] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkswh_name_\"] = self[\"webpackChunkswh_name_\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"
],
"names": [
"root",
"factory",
"exports",
"module",
"define",
"amd",
"self",
"leafPrototypes",
"getProto",
"inProgress",
"dataWebpackPrefix",
"loadStylesheet",
"installedCssChunks",
"asyncGeneratorStep",
"gen",
"resolve",
"reject",
"_next",
"_throw",
"key",
"arg",
"info",
"value",
"error",
"done",
"Promise",
"then",
"fn",
"this",
"args",
"arguments",
"apply",
"err",
"undefined",
"g",
"Function",
"hadRuntime",
"regeneratorRuntime",
"Object",
"getOwnPropertyNames",
"indexOf",
"oldRuntime",
"e",
"global",
"Op",
"prototype",
"hasOwn",
"hasOwnProperty",
"$Symbol",
"Symbol",
"iteratorSymbol",
"iterator",
"asyncIteratorSymbol",
"asyncIterator",
"toStringTagSymbol",
"toStringTag",
"runtime",
"wrap",
"GenStateSuspendedStart",
"GenStateSuspendedYield",
"GenStateExecuting",
"GenStateCompleted",
"ContinueSentinel",
"IteratorPrototype",
"getPrototypeOf",
"NativeIteratorPrototype",
"values",
"call",
"Gp",
"GeneratorFunctionPrototype",
"Generator",
"create",
"GeneratorFunction",
"constructor",
"displayName",
"isGeneratorFunction",
"genFun",
"ctor",
"name",
"mark",
"setPrototypeOf",
"__proto__",
"awrap",
"__await",
"defineIteratorMethods",
"AsyncIterator",
"async",
"innerFn",
"outerFn",
"tryLocsList",
"iter",
"next",
"result",
"toString",
"keys",
"object",
"push",
"reverse",
"length",
"pop",
"Context",
"reset",
"skipTempReset",
"prev",
"sent",
"_sent",
"delegate",
"method",
"tryEntries",
"forEach",
"resetTryEntry",
"charAt",
"isNaN",
"slice",
"stop",
"rootRecord",
"completion",
"type",
"rval",
"dispatchException",
"exception",
"context",
"handle",
"loc",
"caught",
"record",
"i",
"entry",
"tryLoc",
"hasCatch",
"hasFinally",
"catchLoc",
"finallyLoc",
"Error",
"abrupt",
"finallyEntry",
"complete",
"afterLoc",
"finish",
"thrown",
"delegateYield",
"iterable",
"resultName",
"nextLoc",
"protoGenerator",
"generator",
"_invoke",
"state",
"doneResult",
"delegateResult",
"maybeInvokeDelegate",
"tryCatch",
"makeInvokeMethod",
"obj",
"invoke",
"unwrapped",
"previousPromise",
"callInvokeWithMethodAndArg",
"return",
"TypeError",
"pushTryEntry",
"locs",
"iteratorMethod",
"BrowserBackend",
"_super",
"eventFromException",
"hint",
"_options",
"eventFromMessage",
"message",
"level",
"_setupTransport",
"dsn",
"transportOptions",
"tunnel",
"_metadata",
"transport",
"BrowserClient",
"options",
"sdk",
"packages",
"version",
"showReportDialog",
"document",
"_isEnabled",
"getDsn",
"_prepareEvent",
"event",
"scope",
"platform",
"_sendEvent",
"integration",
"getIntegration",
"addSentryBreadcrumb",
"eventFromUnknownInput",
"syntheticException",
"attachStacktrace",
"handled",
"event_id",
"eventFromString",
"domException",
"name_1",
"tags",
"code",
"objectException",
"rejection",
"synthetic",
"input",
"stacktrace",
"frames_1",
"stack",
"frames",
"ignoreOnError",
"shouldIgnoreOnError",
"ignoreNextOnError",
"setTimeout",
"before",
"__sentry__",
"__sentry_wrapped__",
"sentryWrapped",
"Array",
"wrappedArguments",
"map",
"handleEvent",
"ex",
"addEventProcessor",
"processedEvent",
"mechanism",
"extra",
"property",
"_oO",
"defineProperty",
"enumerable",
"defineProperties",
"__sentry_original__",
"getOwnPropertyDescriptor",
"configurable",
"get",
"injectReportDialog",
"eventId",
"script",
"createElement",
"src",
"getReportDialogEndpoint",
"onLoad",
"onload",
"head",
"body",
"appendChild",
"Breadcrumbs",
"id",
"console",
"dom",
"fetch",
"history",
"sentry",
"xhr",
"addBreadcrumb",
"category",
"setupOnce",
"_this",
"callback",
"_i",
"_consoleBreadcrumb",
"_domBreadcrumb",
"_xhrBreadcrumb",
"_fetchBreadcrumb",
"_historyBreadcrumb",
"handlerData",
"breadcrumb",
"data",
"logger",
"target",
"keyAttrs",
"serializeAttribute",
"endTimestamp",
"__sentry_own_request__",
"_a",
"__sentry_xhr__",
"url",
"status_code",
"fetchData",
"match",
"response",
"status",
"from",
"to",
"parsedLoc",
"location",
"href",
"parsedFrom",
"parsedTo",
"path",
"protocol",
"host",
"relative",
"Dedupe",
"addGlobalEventProcessor",
"getCurrentHub",
"currentEvent",
"_shouldDropEvent",
"_previousEvent",
"previousEvent",
"_isSameMessageEvent",
"_isSameExceptionEvent",
"currentMessage",
"previousMessage",
"_isSameFingerprint",
"_isSameStacktrace",
"_getFramesFromEvent",
"currentFrames",
"previousFrames",
"frameA",
"frameB",
"filename",
"lineno",
"colno",
"function",
"_getExceptionFromEvent",
"previousException",
"currentException",
"currentFingerprint",
"fingerprint",
"previousFingerprint",
"join",
"GlobalHandlers",
"_onErrorHandlerInstalled",
"_onUnhandledRejectionHandlerInstalled",
"onerror",
"onunhandledrejection",
"stackTraceLimit",
"log",
"_installGlobalOnErrorHandler",
"_installGlobalOnUnhandledRejectionHandler",
"currentHub",
"hasIntegration",
"isFailedOwnDelivery",
"client",
"getClient",
"msg",
"_eventFromIncompleteOnError",
"line",
"column",
"_enhanceEventWithInitialFrame",
"getOptions",
"captureEvent",
"originalException",
"reason",
"detail",
"_eventFromRejectionWithPrimitive",
"groups",
"String",
"parseInt",
"in_app",
"LinkedErrors",
"_key",
"_limit",
"limit",
"handler",
"_handler",
"bind",
"linkedErrors",
"_walkErrorTree",
"DEFAULT_EVENT_TARGET",
"TryCatch",
"XMLHttpRequest",
"eventTarget",
"requestAnimationFrame",
"setInterval",
"_wrapTimeFunction",
"_wrapRAF",
"_wrapXHR",
"isArray",
"_wrapEventTarget",
"original",
"originalCallback",
"proto",
"eventName",
"originalRemoveEventListener",
"wrappedEventHandler",
"originalEventHandler",
"originalSend",
"xmlHttpRequestProps",
"prop",
"wrapOptions",
"UserAgent",
"_b",
"_c",
"navigator",
"request",
"referrer",
"userAgent",
"headers",
"Referer",
"exceptionFromStacktrace",
"prepareFramesForEvent",
"eventFromPlainObject",
"__serialized__",
"eventFromStacktrace",
"localStack",
"firstFrameFunction",
"func",
"lastFrameFunction",
"frame",
"defaultIntegrations",
"init",
"release",
"window_1",
"SENTRY_RELEASE",
"autoSessionTracking",
"hub",
"startSession",
"captureSession",
"ignoreDuration",
"startSessionTracking",
"UNKNOWN_FUNCTION",
"chrome",
"gecko",
"winjs",
"geckoEval",
"chromeEval",
"reactMinifiedRegexp",
"computeStackTrace",
"popSize",
"framesToPop",
"test",
"parts",
"opera10Regex",
"opera11Regex",
"lines",
"split",
"element",
"exec",
"extractMessage",
"computeStackTraceFromStacktraceProp",
"popFrames",
"submatch",
"isNative",
"substr",
"isSafariExtension",
"isSafariWebExtension",
"columnNumber",
"computeStackTraceFromStackProp",
"failed",
"CATEGORY_MAPPING",
"transaction",
"session",
"attachment",
"BaseTransport",
"_buffer",
"_rateLimits",
"_api",
"getStoreEndpointWithUrlEncodedAuth",
"sendEvent",
"_",
"close",
"timeout",
"drain",
"_handleResponse",
"requestType",
"_handleRateLimit",
"_disabledUntil",
"all",
"_isRateLimited",
"Date",
"now",
"e_1",
"e_2",
"rlHeader",
"raHeader",
"trim",
"_d",
"parameters",
"headerDelay",
"delay",
"_e",
"_f",
"e_2_1",
"e_1_1",
"FetchTransport",
"fetchImpl",
"sandbox",
"hidden",
"contentWindow",
"removeChild",
"getNativeFetchImplementation",
"_fetch",
"_sendRequest",
"sendSession",
"sentryRequest",
"originalPayload",
"referrerPolicy",
"fetchParameters",
"assign",
"add",
"catch",
"XHRTransport",
"header",
"onreadystatechange",
"readyState",
"getResponseHeader",
"open",
"setRequestHeader",
"send",
"API",
"metadata",
"_dsnObject",
"_tunnel",
"forceEnvelope",
"getBaseApiEndpoint",
"port",
"getStoreEndpoint",
"_getIngestEndpoint",
"_encodedAuth",
"getEnvelopeEndpointWithUrlEncodedAuth",
"_getEnvelopeEndpoint",
"getStoreEndpointPath",
"projectId",
"getRequestHeaders",
"clientName",
"clientVersion",
"publicKey",
"pass",
"dialogOptions",
"endpoint",
"encodedOptions",
"user",
"encodeURIComponent",
"email",
"auth",
"sentry_key",
"sentry_version",
"BaseBackend",
"_transport",
"_exception",
"_hint",
"_message",
"_level",
"getTransport",
"BaseClient",
"backendClass",
"_integrations",
"_numProcessing",
"_backend",
"_dsn",
"captureException",
"_process",
"_getBackend",
"_captureEvent",
"captureMessage",
"promisedEvent",
"_sendSession",
"update",
"flush",
"_isClientDoneProcessing",
"clientFinished",
"transportFlushed",
"enabled",
"setupIntegrations",
"initialized",
"_updateSessionFromEvent",
"crashed",
"errored",
"exceptions",
"exceptions_1",
"exceptions_1_1",
"sessionNonTerminal",
"errors",
"Number",
"ticked",
"interval",
"clearInterval",
"normalizeDepth",
"prepared",
"timestamp",
"_applyClientOptions",
"_applyIntegrationsMetadata",
"finalScope",
"captureContext",
"applyToEvent",
"evt",
"_normalizeEvent",
"depth",
"normalized",
"breadcrumbs",
"b",
"contexts",
"trace",
"_experiments",
"ensureNoCircularStructures",
"environment",
"dist",
"maxValueLength",
"integrationsArray",
"integrations",
"_processEvent",
"finalEvent",
"beforeSend",
"sampleRate",
"isTransaction",
"Math",
"random",
"beforeSendResult",
"_ensureBeforeSendRv",
"getSession",
"promise",
"rv",
"nullErr",
"installedIntegrations",
"filterDuplicates",
"reduce",
"acc",
"every",
"accIntegration",
"userIntegrations",
"filter",
"userIntegration",
"integrationsNames",
"alwaysLastToRun",
"splice",
"getIntegrationsToSetup",
"setupIntegration",
"originalFunctionToString",
"FunctionToString",
"DEFAULT_IGNORE_ERRORS",
"InboundFilters",
"clientOptions",
"_mergeOptions",
"_isSentryError",
"_isIgnoredError",
"_isDeniedUrl",
"_getEventFilterUrl",
"_isAllowedUrl",
"ignoreInternal",
"ignoreErrors",
"_getPossibleEventMessages",
"some",
"pattern",
"denyUrls",
"allowUrls",
"whitelistUrls",
"blacklistUrls",
"oO",
"_getLastValidUrl",
"frames_2",
"getSdkMetadataForEnvelopeHeader",
"api",
"enhanceEventWithSdkInfo",
"sdkInfo",
"sessionToSentryRequest",
"JSON",
"stringify",
"sent_at",
"toISOString",
"eventToSentryRequest",
"eventType",
"useEnvelope",
"debug_meta",
"transactionSampling",
"samplingMethod",
"rate",
"req",
"envelope",
"sample_rates",
"initAndBind",
"clientClass",
"debug",
"getScope",
"initialScope",
"bindClient",
"NoopTransport",
"SDK_VERSION",
"Hub",
"_version",
"_stack",
"getStackTop",
"isOlderThan",
"pushScope",
"getStack",
"popScope",
"withScope",
"_lastEventId",
"finalHint",
"_invokeClient",
"lastEventId",
"beforeBreadcrumb",
"maxBreadcrumbs",
"mergedBreadcrumb",
"finalBreadcrumb",
"setUser",
"setTags",
"setExtras",
"extras",
"setTag",
"setExtra",
"setContext",
"configureScope",
"run",
"oldHub",
"makeMain",
"startSpan",
"_callExtensionMethod",
"startTransaction",
"customSamplingContext",
"traceHeaders",
"endSession",
"_sendSessionUpdate",
"setSession",
"getUser",
"currentSession",
"carrier",
"getMainCarrier",
"__SENTRY__",
"extensions",
"registry",
"getHubFromCarrier",
"setHubOnCarrier",
"hasHubOnCarrier",
"activeDomain",
"domain",
"active",
"registryHubTopStack",
"_Oo",
"getHubFromActiveDomain",
"Scope",
"_notifyingListeners",
"_scopeListeners",
"_eventProcessors",
"_breadcrumbs",
"_user",
"_tags",
"_extra",
"_contexts",
"clone",
"newScope",
"_span",
"_session",
"_transactionName",
"_fingerprint",
"_requestSession",
"addScopeListener",
"_notifyScopeListeners",
"getRequestSession",
"setRequestSession",
"requestSession",
"setFingerprint",
"setLevel",
"setTransactionName",
"setTransaction",
"setSpan",
"span",
"getSpan",
"getTransaction",
"spanRecorder",
"spans",
"updatedScope",
"clear",
"maxCrumbs",
"min",
"clearBreadcrumbs",
"getTraceContext",
"transactionName",
"_applyFingerprint",
"_notifyEventProcessors",
"getGlobalEventProcessors",
"processors",
"index",
"processor",
"final",
"concat",
"globalEventProcessors",
"Session",
"sid",
"duration",
"startingTime",
"started",
"ipAddress",
"ip_address",
"did",
"username",
"toJSON",
"attrs",
"user_agent",
"callOnHub",
"SessionStatus",
"RequestSessionStatus",
"Severity",
"fromString",
"Debug",
"Info",
"Warning",
"Fatal",
"Critical",
"Log",
"Status",
"fromHttpCode",
"Success",
"RateLimit",
"Invalid",
"Failed",
"Unknown",
"htmlTreeAsString",
"elem",
"currentElem",
"out",
"height",
"len",
"sepLength",
"nextStr",
"_htmlElementAsString",
"parentNode",
"el",
"className",
"classes",
"attr",
"tagName",
"toLowerCase",
"keyAttrPairs",
"keyAttr",
"getAttribute",
"keyAttrPair",
"allowedAttrs",
"DSN_REGEX",
"ERROR_MESSAGE",
"Dsn",
"_fromString",
"_fromComponents",
"_validate",
"withPassword",
"str",
"projectMatch",
"components",
"component",
"SentryError",
"_newTarget",
"lastHref",
"handlers",
"instrumented",
"instrument",
"originalConsoleLevel",
"triggerHandlers",
"instrumentConsole",
"triggerDOMHandler",
"globalDOMEventHandler",
"makeDOMEventHandler",
"addEventListener",
"originalAddEventListener",
"listener",
"handlers_1",
"__sentry_instrumentation_handlers__",
"handlerForType",
"refCount",
"handlers_2",
"instrumentDOM",
"requestKeys",
"requestValues",
"xhrproto",
"originalOpen",
"toUpperCase",
"onreadystatechangeHandler",
"requestPos",
"args_1",
"startTimestamp",
"readyStateArgs",
"instrumentXHR",
"originalFetch",
"getFetchMethod",
"getFetchUrl",
"instrumentFetch",
"oldOnPopState",
"onpopstate",
"historyReplacementFunction",
"originalHistoryFunction",
"instrumentHistory",
"_oldOnErrorHandler",
"_oldOnUnhandledRejectionHandler",
"addInstrumentationHandler",
"fetchArgs",
"Request",
"debounceTimerID",
"lastCapturedEvent",
"globalListener",
"isContentEditable",
"shouldSkipDOMEvent",
"previous",
"current",
"shouldShortcircuitPreviousDebounce",
"clearTimeout",
"isError",
"wat",
"isInstanceOf",
"isErrorEvent",
"isDOMError",
"isDOMException",
"isString",
"isPrimitive",
"isPlainObject",
"isEvent",
"Event",
"isElement",
"Element",
"isRegExp",
"isThenable",
"Boolean",
"isSyntheticEvent",
"base",
"PREFIX",
"Logger",
"_enabled",
"disable",
"enable",
"warn",
"Memo",
"_hasWeakSet",
"WeakSet",
"_inner",
"memoize",
"has",
"unmemoize",
"delete",
"fallbackGlobalObject",
"getGlobalObject",
"window",
"uuid4",
"crypto",
"msCrypto",
"getRandomValues",
"arr",
"Uint16Array",
"pad",
"num",
"v",
"replace",
"c",
"r",
"parseUrl",
"query",
"fragment",
"getEventDescription",
"consoleSandbox",
"originalConsole",
"wrappedLevels",
"addExceptionTypeValue",
"addExceptionMechanism",
"getLocationHref",
"parseRetryAfterHeader",
"headerDate",
"parse",
"isNodeEnv",
"process",
"dynamicRequire",
"mod",
"require",
"fill",
"source",
"replacementFactory",
"wrapped",
"urlEncode",
"getWalkSource",
"event_1",
"currentTarget",
"CustomEvent",
"jsonSize",
"encodeURI",
"utf8Length",
"normalizeToSize",
"maxSize",
"serialized",
"normalize",
"normalizeValue",
"_events",
"walk",
"memo",
"Infinity",
"serializeValue",
"innerKey",
"extractExceptionKeysForMessage",
"maxLength",
"sort",
"includedKeys",
"dropUndefinedKeys",
"val",
"PromiseBuffer",
"isReady",
"taskProducer",
"task",
"remove",
"capturedSetTimeout",
"defaultFunctionName",
"getFunctionName",
"truncate",
"max",
"safeJoin",
"delimiter",
"output",
"isMatchingPattern",
"supportsFetch",
"Headers",
"Response",
"isNativeFetch",
"supportsNativeFetch",
"doc",
"supportsReferrerPolicy",
"supportsHistory",
"isChromePackagedApp",
"app",
"hasHistoryApi",
"pushState",
"replaceState",
"States",
"SyncPromise",
"executor",
"_state",
"PENDING",
"_handlers",
"_resolve",
"_setResult",
"RESOLVED",
"_reject",
"REJECTED",
"_value",
"_executeHandlers",
"_attachHandler",
"cachedHandlers",
"onfulfilled",
"onrejected",
"collection",
"counter",
"resolvedCollection",
"item",
"finally",
"onfinally",
"isRejected",
"dateTimestampSource",
"nowSeconds",
"platformPerformance",
"performance",
"getNodePerformance",
"timeOrigin",
"getBrowserPerformance",
"timestampSource",
"dateTimestampInSeconds",
"timestampInSeconds",
"threshold",
"performanceNow",
"dateNow",
"timeOriginDelta",
"abs",
"timeOriginIsReliable",
"navigationStart",
"timing",
"navigationStartDelta",
"PacketKind",
"__makeTemplateObject",
"cooked",
"raw",
"AnsiUp",
"VERSION",
"setup_palettes",
"_use_classes",
"bold",
"fg",
"bg",
"_url_whitelist",
"set",
"ansi_colors",
"rgb",
"class_name",
"palette_256",
"palette",
"rec",
"levels",
"col",
"grey_level",
"gry",
"escape_txt_for_html",
"txt",
"append_buffer",
"get_next_packet",
"pkt",
"kind",
"EOS",
"text",
"pos",
"Text",
"Incomplete",
"next_char",
"ESC",
"_csi_regex",
"rgx",
"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",
"is_foreground",
"mode_cmd",
"palette_index",
"styles",
"class_string",
"style_string",
"tmplObj",
"subst",
"wsrgx",
"txt2",
"RegExp",
"default",
"showBadgeInfoModal",
"objectType",
"objectSWHID",
"badgeImageUrl",
"badgeLinkUrl",
"Urls",
"swh_badge",
"browse_origin",
"objectSWHIDNoContext",
"swh_badge_swhid",
"$",
"each",
"swhid",
"pathname",
"browse_swhid",
"absoluteBadgeImageUrl",
"origin",
"absoluteBadgeLinkUrl",
"html",
"swh",
"webapp",
"showModalHtml",
"firstHighlightedLine",
"highlightLine",
"firstHighlighted",
"lineTd",
"css",
"resetHighlightedLines",
"scrollToLine",
"lineDomElt",
"closest",
"animate",
"scrollTop",
"offset",
"top",
"highlightCode",
"showLineNumbers",
"parseUrlFragmentForLinesToHighlight",
"linesRegexp",
"hash",
"ready",
"elt",
"hljs",
"highlightElement",
"lineNumbersElement",
"singleLine",
"click",
"classList",
"contains",
"shiftKey",
"firstLine",
"removeUrlFragment",
"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",
"append",
"a",
"firstPoint",
"lastPoint",
"scaleTime",
"rangeRound",
"nice",
"scaleLinear",
"range",
"x",
"y",
"timeFormat",
"format",
"bisector",
"axisBottom",
"ticks",
"tickFormat",
"selectAll",
"axisRight",
"datum",
"transition",
"typesetMath",
"MathJax",
"chtml",
"fontURL",
"staticAsset",
"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",
"defaultScale",
"getViewport",
"viewport",
"canvas",
"renderContext",
"canvasContext",
"ctx",
"getContext",
"pdfjs",
"GlobalWorkerOptions",
"workerSrc",
"getDocument",
"pdf",
"markdownDocUrl",
"showdownHighlight",
"classAttr",
"helper",
"replaceRecursiveRegExp",
"wholeMatch",
"decode",
"includes",
"attrIndex",
"handleFetchError",
"addClass",
"renderOrgData",
"orgDocData",
"org",
"parser",
"Parser",
"orgDocument",
"toc",
"orgHTMLDocument",
"convert",
"ConverterHTML",
"first",
"renderOrg",
"orgDocUrl",
"renderTxt",
"txtDocUrl",
"orgMode",
"sentryInit",
"sentryDsn",
"Sentry",
"sentryCaptureException",
"exc",
"statusCodeColor",
"initStatusWidget",
"statusDataURL",
"maxStatusCode",
"maxStatusDescription",
"sc",
"sd",
"s",
"removeClass",
"swhObjectIcons",
"collapseSidebar",
"previousSidebarState",
"localStorage",
"getItem",
"ensureNoFooterOverflow",
"outerHeight",
"initPage",
"sessionStorage",
"setItem",
"initHomePage",
"iFrameResize",
"heightCalculationMethod",
"stat_counters",
"isEmptyObject",
"count",
"toLocaleString",
"hide",
"stat_counters_history",
"showModalMessage",
"title",
"modal",
"showModalConfirm",
"unbind",
"addJumpToPagePopoverToDataTable",
"dataTableElt",
"pageInfo",
"content",
"pages",
"selected",
"popover",
"pageNumber",
"draw",
"setSwhObjectIcons",
"icons",
"getSwhObjectIcon",
"swhObjectType",
"BREAKPOINT_MD",
"sidebarTransition",
"sidebarEltsTransition",
"lastBrowsePage",
"preventDefault",
"mainSideBar",
"updateSidebarState",
"hasClass",
"resize",
"objectFitImages",
"selectedCode",
"getCodeOrPreEltUnderPointer",
"elementsFromPoint",
"clientX",
"clientY",
"nodeName",
"selectCode",
"hljsLnCodeElts",
"find",
"selectText",
"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",
"fullWidthToggled",
"setContainerFullWidth",
"previousFullWidthState",
"coreSWHIDIsLowerCase",
"qualifiersPos",
"coreSWHID",
"validateSWHIDInput",
"swhidInputElt",
"swhidInput",
"customValidity",
"startsWith",
"resolveSWHIDUrl",
"api_1_resolve_swhid",
"responseData",
"setCustomValidity",
"siblings",
"isUserLoggedIn",
"DOMPurify",
"node",
"attrName",
"attrValue",
"swhObjectMetadata",
"browse_directory_resolve_content_path",
"directory",
"ok",
"asset",
"__STATIC__",
"search",
"startNode",
"endNode",
"selection",
"getSelection",
"removeAllRanges",
"createRange",
"setStart",
"setEnd",
"childNodes",
"textContent",
"addRange",
"_toConsumableArray",
"arr2",
"isFrozen",
"freeze",
"seal",
"_ref",
"Reflect",
"construct",
"fun",
"thisValue",
"Func",
"arrayForEach",
"unapply",
"arrayPop",
"arrayPush",
"stringToLowerCase",
"stringMatch",
"stringReplace",
"stringIndexOf",
"stringTrim",
"regExpTest",
"typeErrorCreate",
"unconstruct",
"thisArg",
"_len",
"_len2",
"_key2",
"addToSet",
"array",
"l",
"lcElement",
"newObject",
"lookupGetter",
"desc",
"fallbackValue",
"svgFilters",
"svgDisallowed",
"mathMl",
"mathMlDisallowed",
"html$1",
"svg$1",
"mathMl$1",
"xml",
"MUSTACHE_EXPR",
"ERB_EXPR",
"DATA_ATTR",
"ARIA_ATTR",
"IS_ALLOWED_URI",
"IS_SCRIPT_OR_DATA",
"ATTR_WHITESPACE",
"_typeof",
"_toConsumableArray$1",
"getGlobal",
"_createTrustedTypesPolicy",
"trustedTypes",
"createPolicy",
"suffix",
"ATTR_NAME",
"currentScript",
"hasAttribute",
"policyName",
"createHTML",
"html$$1",
"createDOMPurify",
"removed",
"nodeType",
"isSupported",
"originalDocument",
"DocumentFragment",
"HTMLTemplateElement",
"Node",
"NodeFilter",
"_window$NamedNodeMap",
"NamedNodeMap",
"MozNamedAttrMap",
"Comment",
"DOMParser",
"ElementPrototype",
"cloneNode",
"getNextSibling",
"getChildNodes",
"getParentNode",
"template",
"ownerDocument",
"trustedTypesPolicy",
"emptyHTML",
"RETURN_TRUSTED_TYPE",
"_document",
"implementation",
"createNodeIterator",
"createDocumentFragment",
"getElementsByTagName",
"importNode",
"documentMode",
"hooks",
"createHTMLDocument",
"MUSTACHE_EXPR$$1",
"ERB_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",
"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_DOM_IMPORT",
"SANITIZE_DOM",
"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",
"CONFIG",
"formElement",
"_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",
"ALL_SVG_TAGS",
"ALL_MATHML_TAGS",
"_checkValidNamespace",
"namespaceURI",
"parentTagName",
"commonSvgAndHTMLElements",
"_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",
"_isNode",
"_executeHook",
"entryPoint",
"currentNode",
"hook",
"_sanitizeElements",
"allowedTags",
"firstElementChild",
"_isValidAttribute",
"lcTag",
"lcName",
"_sanitizeAttributes",
"hookEvent",
"keepAttr",
"allowedAttributes",
"_attr",
"forceKeepAttr",
"setAttributeNS",
"_sanitizeShadowDOM",
"shadowNode",
"shadowIterator",
"nextNode",
"sanitize",
"importedNode",
"oldNode",
"returnNode",
"toStaticHTML",
"nodeIterator",
"serializedHTML",
"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",
"encode",
"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",
"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",
"RegexEscape",
"escape",
"execScript",
"attachEvent",
"eval",
"extendStatics",
"p",
"__extends",
"__",
"__assign",
"t",
"n",
"__rest",
"getOwnPropertySymbols",
"propertyIsEnumerable",
"__values",
"o",
"m",
"__read",
"ar",
"__spread",
"defaultConverter",
"read",
"decodeURIComponent",
"write",
"defaultAttributes",
"expires",
"toUTCString",
"stringifiedAttributes",
"attributeName",
"cookie",
"cookies",
"jar",
"foundKey",
"withAttributes",
"withConverter",
"__webpack_module_cache__",
"__webpack_require__",
"moduleId",
"cachedModule",
"loaded",
"__webpack_modules__",
"getter",
"__esModule",
"mode",
"def",
"definition",
"f",
"chunkId",
"promises",
"u",
"miniCssF",
"globalThis",
"hmd",
"children",
"needAttach",
"scripts",
"charset",
"nc",
"onScriptComplete",
"doneFns",
"nmd",
"paths",
"fullhref",
"existingLinkTags",
"dataHref",
"rel",
"existingStyleTags",
"findStylesheet",
"linkTag",
"errorType",
"realHref",
"createStylesheet",
"836",
"miniCss",
"installedChunks",
"j",
"installedChunkData",
"realSrc",
"webpackJsonpCallback",
"parentChunkLoadingFunction",
"chunkIds",
"moreModules",
"chunkLoadingGlobal"
],
"sourceRoot": ""
}

File Metadata

Mime Type
application/json
Expires
Fri, Jul 4, 2:00 PM (3 d, 14 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3330508

Event Timeline