/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([["vendors-node_modules_jupyterlab_rendermime_lib_index_js"],{

/***/ "../node_modules/@jupyterlab/rendermime/lib/attachmentmodel.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/attachmentmodel.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"AttachmentModel\": () => (/* binding */ AttachmentModel)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/observables */ \"webpack/sharing/consume/default/@jupyterlab/observables/@jupyterlab/observables\");\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_2__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n/**\n * The default implementation of a notebook attachment model.\n */\nclass AttachmentModel {\n    /**\n     * Construct a new attachment model.\n     */\n    constructor(options) {\n        // All attachments are untrusted\n        this.trusted = false;\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n        this._raw = {};\n        const data = Private.getData(options.value);\n        this._data = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ObservableJSON({ values: data });\n        this._rawData = data;\n        // Make a copy of the data.\n        const value = options.value;\n        for (const key in value) {\n            // Ignore data and metadata that were stripped.\n            switch (key) {\n                case 'data':\n                    break;\n                default:\n                    this._raw[key] = Private.extract(value, key);\n            }\n        }\n    }\n    /**\n     * A signal emitted when the attachment model changes.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * Dispose of the resources used by the attachment model.\n     */\n    dispose() {\n        this._data.dispose();\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal.clearData(this);\n    }\n    /**\n     * The data associated with the model.\n     */\n    get data() {\n        return this._rawData;\n    }\n    /**\n     * The metadata associated with the model.\n     */\n    get metadata() {\n        return {};\n    }\n    /**\n     * Set the data associated with the model.\n     *\n     * #### Notes\n     * Depending on the implementation of the mime model,\n     * this call may or may not have deferred effects,\n     */\n    setData(options) {\n        if (options.data) {\n            this._updateObservable(this._data, options.data);\n            this._rawData = options.data;\n        }\n        this._changed.emit(void 0);\n    }\n    /**\n     * Serialize the model to JSON.\n     */\n    toJSON() {\n        const attachment = {};\n        for (const key in this._raw) {\n            attachment[key] = Private.extract(this._raw, key);\n        }\n        return attachment;\n    }\n    /**\n     * Update an observable JSON object using a readonly JSON object.\n     */\n    _updateObservable(observable, data) {\n        const oldKeys = observable.keys();\n        const newKeys = Object.keys(data);\n        // Handle removed keys.\n        for (const key of oldKeys) {\n            if (newKeys.indexOf(key) === -1) {\n                observable.delete(key);\n            }\n        }\n        // Handle changed data.\n        for (const key of newKeys) {\n            const oldValue = observable.get(key);\n            const newValue = data[key];\n            if (oldValue !== newValue) {\n                observable.set(key, newValue);\n            }\n        }\n    }\n}\n/**\n * The namespace for AttachmentModel statics.\n */\n(function (AttachmentModel) {\n    /**\n     * Get the data for an attachment.\n     *\n     * @params bundle - A kernel attachment MIME bundle.\n     *\n     * @returns - The data for the payload.\n     */\n    function getData(bundle) {\n        return Private.getData(bundle);\n    }\n    AttachmentModel.getData = getData;\n})(AttachmentModel || (AttachmentModel = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * Get the data from a notebook attachment.\n     */\n    function getData(bundle) {\n        return convertBundle(bundle);\n    }\n    Private.getData = getData;\n    /**\n     * Get the bundle options given attachment model options.\n     */\n    function getBundleOptions(options) {\n        const data = getData(options.value);\n        return { data };\n    }\n    Private.getBundleOptions = getBundleOptions;\n    /**\n     * Extract a value from a JSONObject.\n     */\n    function extract(value, key) {\n        const item = value[key];\n        if (item === undefined || _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.isPrimitive(item)) {\n            return item;\n        }\n        return _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.JSONExt.deepCopy(item);\n    }\n    Private.extract = extract;\n    /**\n     * Convert a mime bundle to mime data.\n     */\n    function convertBundle(bundle) {\n        const map = Object.create(null);\n        for (const mimeType in bundle) {\n            map[mimeType] = extract(bundle, mimeType);\n        }\n        return map;\n    }\n})(Private || (Private = {}));\n//# sourceMappingURL=attachmentmodel.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/attachmentmodel.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/factories.js":
/*!***************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/factories.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"htmlRendererFactory\": () => (/* binding */ htmlRendererFactory),\n/* harmony export */   \"imageRendererFactory\": () => (/* binding */ imageRendererFactory),\n/* harmony export */   \"latexRendererFactory\": () => (/* binding */ latexRendererFactory),\n/* harmony export */   \"markdownRendererFactory\": () => (/* binding */ markdownRendererFactory),\n/* harmony export */   \"svgRendererFactory\": () => (/* binding */ svgRendererFactory),\n/* harmony export */   \"textRendererFactory\": () => (/* binding */ textRendererFactory),\n/* harmony export */   \"javaScriptRendererFactory\": () => (/* binding */ javaScriptRendererFactory),\n/* harmony export */   \"standardRendererFactories\": () => (/* binding */ standardRendererFactories)\n/* harmony export */ });\n/* harmony import */ var _widgets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./widgets */ \"../node_modules/@jupyterlab/rendermime/lib/widgets.js\");\n\n/**\n * A mime renderer factory for raw html.\n */\nconst htmlRendererFactory = {\n    safe: true,\n    mimeTypes: ['text/html'],\n    defaultRank: 50,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedHTML(options)\n};\n/**\n * A mime renderer factory for images.\n */\nconst imageRendererFactory = {\n    safe: true,\n    mimeTypes: ['image/bmp', 'image/png', 'image/jpeg', 'image/gif'],\n    defaultRank: 90,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedImage(options)\n};\n/**\n * A mime renderer factory for LaTeX.\n */\nconst latexRendererFactory = {\n    safe: true,\n    mimeTypes: ['text/latex'],\n    defaultRank: 70,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedLatex(options)\n};\n/**\n * A mime renderer factory for Markdown.\n */\nconst markdownRendererFactory = {\n    safe: true,\n    mimeTypes: ['text/markdown'],\n    defaultRank: 60,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedMarkdown(options)\n};\n/**\n * A mime renderer factory for svg.\n */\nconst svgRendererFactory = {\n    safe: false,\n    mimeTypes: ['image/svg+xml'],\n    defaultRank: 80,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedSVG(options)\n};\n/**\n * A mime renderer factory for plain and jupyter console text data.\n */\nconst textRendererFactory = {\n    safe: true,\n    mimeTypes: [\n        'text/plain',\n        'application/vnd.jupyter.stdout',\n        'application/vnd.jupyter.stderr'\n    ],\n    defaultRank: 120,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedText(options)\n};\n/**\n * A placeholder factory for rendered JavaScript.\n */\nconst javaScriptRendererFactory = {\n    safe: false,\n    mimeTypes: ['text/javascript', 'application/javascript'],\n    defaultRank: 110,\n    createRenderer: options => new _widgets__WEBPACK_IMPORTED_MODULE_0__.RenderedJavaScript(options)\n};\n/**\n * The standard factories provided by the rendermime package.\n */\nconst standardRendererFactories = [\n    htmlRendererFactory,\n    markdownRendererFactory,\n    latexRendererFactory,\n    svgRendererFactory,\n    imageRendererFactory,\n    javaScriptRendererFactory,\n    textRendererFactory\n];\n//# sourceMappingURL=factories.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/factories.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/index.js":
/*!***********************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"AttachmentModel\": () => (/* reexport safe */ _attachmentmodel__WEBPACK_IMPORTED_MODULE_1__.AttachmentModel),\n/* harmony export */   \"htmlRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.htmlRendererFactory),\n/* harmony export */   \"imageRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.imageRendererFactory),\n/* harmony export */   \"javaScriptRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.javaScriptRendererFactory),\n/* harmony export */   \"latexRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.latexRendererFactory),\n/* harmony export */   \"markdownRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.markdownRendererFactory),\n/* harmony export */   \"standardRendererFactories\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.standardRendererFactories),\n/* harmony export */   \"svgRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.svgRendererFactory),\n/* harmony export */   \"textRendererFactory\": () => (/* reexport safe */ _factories__WEBPACK_IMPORTED_MODULE_2__.textRendererFactory),\n/* harmony export */   \"removeMath\": () => (/* reexport safe */ _latex__WEBPACK_IMPORTED_MODULE_3__.removeMath),\n/* harmony export */   \"replaceMath\": () => (/* reexport safe */ _latex__WEBPACK_IMPORTED_MODULE_3__.replaceMath),\n/* harmony export */   \"MimeModel\": () => (/* reexport safe */ _mimemodel__WEBPACK_IMPORTED_MODULE_4__.MimeModel),\n/* harmony export */   \"OutputModel\": () => (/* reexport safe */ _outputmodel__WEBPACK_IMPORTED_MODULE_5__.OutputModel),\n/* harmony export */   \"RenderMimeRegistry\": () => (/* reexport safe */ _registry__WEBPACK_IMPORTED_MODULE_6__.RenderMimeRegistry),\n/* harmony export */   \"renderHTML\": () => (/* reexport safe */ _renderers__WEBPACK_IMPORTED_MODULE_7__.renderHTML),\n/* harmony export */   \"renderImage\": () => (/* reexport safe */ _renderers__WEBPACK_IMPORTED_MODULE_7__.renderImage),\n/* harmony export */   \"renderLatex\": () => (/* reexport safe */ _renderers__WEBPACK_IMPORTED_MODULE_7__.renderLatex),\n/* harmony export */   \"renderMarkdown\": () => (/* reexport safe */ _renderers__WEBPACK_IMPORTED_MODULE_7__.renderMarkdown),\n/* harmony export */   \"renderSVG\": () => (/* reexport safe */ _renderers__WEBPACK_IMPORTED_MODULE_7__.renderSVG),\n/* harmony export */   \"renderText\": () => (/* reexport safe */ _renderers__WEBPACK_IMPORTED_MODULE_7__.renderText),\n/* harmony export */   \"ILatexTypesetter\": () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_8__.ILatexTypesetter),\n/* harmony export */   \"IRenderMimeRegistry\": () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_8__.IRenderMimeRegistry),\n/* harmony export */   \"RenderedCommon\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedCommon),\n/* harmony export */   \"RenderedHTML\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedHTML),\n/* harmony export */   \"RenderedHTMLCommon\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedHTMLCommon),\n/* harmony export */   \"RenderedImage\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedImage),\n/* harmony export */   \"RenderedJavaScript\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedJavaScript),\n/* harmony export */   \"RenderedLatex\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedLatex),\n/* harmony export */   \"RenderedMarkdown\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedMarkdown),\n/* harmony export */   \"RenderedSVG\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedSVG),\n/* harmony export */   \"RenderedText\": () => (/* reexport safe */ _widgets__WEBPACK_IMPORTED_MODULE_9__.RenderedText)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_rendermime_interfaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/rendermime-interfaces */ \"webpack/sharing/consume/default/@jupyterlab/rendermime-interfaces/@jupyterlab/rendermime-interfaces\");\n/* harmony import */ var _jupyterlab_rendermime_interfaces__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_rendermime_interfaces__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _jupyterlab_rendermime_interfaces__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _jupyterlab_rendermime_interfaces__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n/* harmony import */ var _attachmentmodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./attachmentmodel */ \"../node_modules/@jupyterlab/rendermime/lib/attachmentmodel.js\");\n/* harmony import */ var _factories__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./factories */ \"../node_modules/@jupyterlab/rendermime/lib/factories.js\");\n/* harmony import */ var _latex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./latex */ \"../node_modules/@jupyterlab/rendermime/lib/latex.js\");\n/* harmony import */ var _mimemodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mimemodel */ \"../node_modules/@jupyterlab/rendermime/lib/mimemodel.js\");\n/* harmony import */ var _outputmodel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./outputmodel */ \"../node_modules/@jupyterlab/rendermime/lib/outputmodel.js\");\n/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./registry */ \"../node_modules/@jupyterlab/rendermime/lib/registry.js\");\n/* harmony import */ var _renderers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./renderers */ \"../node_modules/@jupyterlab/rendermime/lib/renderers.js\");\n/* harmony import */ var _tokens__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./tokens */ \"../node_modules/@jupyterlab/rendermime/lib/tokens.js\");\n/* harmony import */ var _widgets__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./widgets */ \"../node_modules/@jupyterlab/rendermime/lib/widgets.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n/**\n * @packageDocumentation\n * @module rendermime\n */\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/index.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/latex.js":
/*!***********************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/latex.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"removeMath\": () => (/* binding */ removeMath),\n/* harmony export */   \"replaceMath\": () => (/* binding */ replaceMath)\n/* harmony export */ });\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n// Some magic for deferring mathematical expressions to MathJax\n// by hiding them from the Markdown parser.\n// Some of the code here is adapted with permission from Davide Cervone\n// under the terms of the Apache2 license governing the MathJax project.\n// Other minor modifications are also due to StackExchange and are used with\n// permission.\nconst inline = '$'; // the inline math delimiter\n// MATHSPLIT contains the pattern for math delimiters and special symbols\n// needed for searching for math in the text input.\nconst MATHSPLIT = /(\\$\\$?|\\\\(?:begin|end)\\{[a-z]*\\*?\\}|\\\\[{}$]|[{}]|(?:\\n\\s*)+|@@\\d+@@|\\\\\\\\(?:\\(|\\)|\\[|\\]))/i;\n/**\n *  Break up the text into its component parts and search\n *    through them for math delimiters, braces, linebreaks, etc.\n *  Math delimiters must match and braces must balance.\n *  Don't allow math to pass through a double linebreak\n *    (which will be a paragraph).\n */\nfunction removeMath(text) {\n    const math = []; // stores math strings for later\n    let start = null;\n    let end = null;\n    let last = null;\n    let braces = 0;\n    let deTilde;\n    // Except for extreme edge cases, this should catch precisely those pieces of the markdown\n    // source that will later be turned into code spans. While MathJax will not TeXify code spans,\n    // we still have to consider them at this point; the following issue has happened several times:\n    //\n    //     `$foo` and `$bar` are variables.  -->  <code>$foo ` and `$bar</code> are variables.\n    const hasCodeSpans = /`/.test(text);\n    if (hasCodeSpans) {\n        text = text\n            .replace(/~/g, '~T')\n            .replace(/(^|[^\\\\])(`+)([^\\n]*?[^`\\n])\\2(?!`)/gm, wholematch => wholematch.replace(/\\$/g, '~D'));\n        deTilde = (text) => {\n            return text.replace(/~([TD])/g, (wholematch, character) => character === 'T' ? '~' : inline);\n        };\n    }\n    else {\n        deTilde = (text) => {\n            return text;\n        };\n    }\n    let blocks = text.replace(/\\r\\n?/g, '\\n').split(MATHSPLIT);\n    for (let i = 1, m = blocks.length; i < m; i += 2) {\n        const block = blocks[i];\n        if (block.charAt(0) === '@') {\n            //\n            //  Things that look like our math markers will get\n            //  stored and then retrieved along with the math.\n            //\n            blocks[i] = '@@' + math.length + '@@';\n            math.push(block);\n        }\n        else if (start !== null) {\n            //\n            //  If we are in math, look for the end delimiter,\n            //    but don't go past double line breaks, and\n            //    and balance braces within the math.\n            //\n            if (block === end) {\n                if (braces) {\n                    last = i;\n                }\n                else {\n                    blocks = processMath(start, i, deTilde, math, blocks);\n                    start = null;\n                    end = null;\n                    last = null;\n                }\n            }\n            else if (block.match(/\\n.*\\n/)) {\n                if (last !== null) {\n                    i = last;\n                    blocks = processMath(start, i, deTilde, math, blocks);\n                }\n                start = null;\n                end = null;\n                last = null;\n                braces = 0;\n            }\n            else if (block === '{') {\n                braces++;\n            }\n            else if (block === '}' && braces) {\n                braces--;\n            }\n        }\n        else {\n            //\n            //  Look for math start delimiters and when\n            //    found, set up the end delimiter.\n            //\n            if (block === inline || block === '$$') {\n                start = i;\n                end = block;\n                braces = 0;\n            }\n            else if (block === '\\\\\\\\(' || block === '\\\\\\\\[') {\n                start = i;\n                end = block.slice(-1) === '(' ? '\\\\\\\\)' : '\\\\\\\\]';\n                braces = 0;\n            }\n            else if (block.substr(1, 5) === 'begin') {\n                start = i;\n                end = '\\\\end' + block.substr(6);\n                braces = 0;\n            }\n        }\n    }\n    if (start !== null && last !== null) {\n        blocks = processMath(start, last, deTilde, math, blocks);\n        start = null;\n        end = null;\n        last = null;\n    }\n    return { text: deTilde(blocks.join('')), math };\n}\n/**\n * Put back the math strings that were saved,\n * and clear the math array (no need to keep it around).\n */\nfunction replaceMath(text, math) {\n    /**\n     * Replace a math placeholder with its corresponding group.\n     * The math delimiters \"\\\\(\", \"\\\\[\", \"\\\\)\" and \"\\\\]\" are replaced\n     * removing one backslash in order to be interpreted correctly by MathJax.\n     */\n    const process = (match, n) => {\n        let group = math[n];\n        if (group.substr(0, 3) === '\\\\\\\\(' &&\n            group.substr(group.length - 3) === '\\\\\\\\)') {\n            group = '\\\\(' + group.substring(3, group.length - 3) + '\\\\)';\n        }\n        else if (group.substr(0, 3) === '\\\\\\\\[' &&\n            group.substr(group.length - 3) === '\\\\\\\\]') {\n            group = '\\\\[' + group.substring(3, group.length - 3) + '\\\\]';\n        }\n        return group;\n    };\n    // Replace all the math group placeholders in the text\n    // with the saved strings.\n    return text.replace(/@@(\\d+)@@/g, process);\n}\n/**\n * Process math blocks.\n *\n * The math is in blocks i through j, so\n *   collect it into one block and clear the others.\n *  Replace &, <, and > by named entities.\n *  For IE, put <br> at the ends of comments since IE removes \\n.\n *  Clear the current math positions and store the index of the\n *   math, then push the math string onto the storage array.\n *  The preProcess function is called on all blocks if it has been passed in\n */\nfunction processMath(i, j, preProcess, math, blocks) {\n    let block = blocks\n        .slice(i, j + 1)\n        .join('')\n        .replace(/&/g, '&amp;') // use HTML entity for &\n        .replace(/</g, '&lt;') // use HTML entity for <\n        .replace(/>/g, '&gt;'); // use HTML entity for >\n    if (navigator && navigator.appName === 'Microsoft Internet Explorer') {\n        block = block.replace(/(%[^\\n]*)\\n/g, '$1<br/>\\n');\n    }\n    while (j > i) {\n        blocks[j] = '';\n        j--;\n    }\n    blocks[i] = '@@' + math.length + '@@'; // replace the current block text with a unique tag to find later\n    if (preProcess) {\n        block = preProcess(block);\n    }\n    math.push(block);\n    return blocks;\n}\n//# sourceMappingURL=latex.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/latex.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/mimemodel.js":
/*!***************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/mimemodel.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"MimeModel\": () => (/* binding */ MimeModel)\n/* harmony export */ });\n/**\n * The default mime model implementation.\n */\nclass MimeModel {\n    /**\n     * Construct a new mime model.\n     */\n    constructor(options = {}) {\n        this.trusted = !!options.trusted;\n        this._data = options.data || {};\n        this._metadata = options.metadata || {};\n        this._callback = options.callback || Private.noOp;\n    }\n    /**\n     * The data associated with the model.\n     */\n    get data() {\n        return this._data;\n    }\n    /**\n     * The metadata associated with the model.\n     */\n    get metadata() {\n        return this._metadata;\n    }\n    /**\n     * Set the data associated with the model.\n     *\n     * #### Notes\n     * Depending on the implementation of the mime model,\n     * this call may or may not have deferred effects,\n     */\n    setData(options) {\n        this._data = options.data || this._data;\n        this._metadata = options.metadata || this._metadata;\n        this._callback(options);\n    }\n}\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * A no-op callback function.\n     */\n    function noOp() {\n        /* no-op */\n    }\n    Private.noOp = noOp;\n})(Private || (Private = {}));\n//# sourceMappingURL=mimemodel.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/mimemodel.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/outputmodel.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/outputmodel.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"OutputModel\": () => (/* binding */ OutputModel)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/nbformat */ \"webpack/sharing/consume/default/@jupyterlab/nbformat/@jupyterlab/nbformat\");\n/* harmony import */ var _jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/observables */ \"webpack/sharing/consume/default/@jupyterlab/observables/@jupyterlab/observables\");\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_3__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n\n/**\n * The default implementation of a notebook output model.\n */\nclass OutputModel {\n    /**\n     * Construct a new output model.\n     */\n    constructor(options) {\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal(this);\n        this._raw = {};\n        const { data, metadata, trusted } = Private.getBundleOptions(options);\n        this._data = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1__.ObservableJSON({ values: data });\n        this._rawData = data;\n        this._metadata = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_1__.ObservableJSON({ values: metadata });\n        this._rawMetadata = metadata;\n        this.trusted = trusted;\n        // Make a copy of the data.\n        const value = options.value;\n        for (const key in value) {\n            // Ignore data and metadata that were stripped.\n            switch (key) {\n                case 'data':\n                case 'metadata':\n                    break;\n                default:\n                    this._raw[key] = Private.extract(value, key);\n            }\n        }\n        this.type = value.output_type;\n        if (_jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isExecuteResult(value)) {\n            this.executionCount = value.execution_count;\n        }\n        else {\n            this.executionCount = null;\n        }\n    }\n    /**\n     * A signal emitted when the output model changes.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * Dispose of the resources used by the output model.\n     */\n    dispose() {\n        this._data.dispose();\n        this._metadata.dispose();\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal.clearData(this);\n    }\n    /**\n     * The data associated with the model.\n     */\n    get data() {\n        return this._rawData;\n    }\n    /**\n     * The metadata associated with the model.\n     */\n    get metadata() {\n        return this._rawMetadata;\n    }\n    /**\n     * Set the data associated with the model.\n     *\n     * #### Notes\n     * Depending on the implementation of the mime model,\n     * this call may or may not have deferred effects,\n     */\n    setData(options) {\n        if (options.data) {\n            this._updateObservable(this._data, options.data);\n            this._rawData = options.data;\n        }\n        if (options.metadata) {\n            this._updateObservable(this._metadata, options.metadata);\n            this._rawMetadata = options.metadata;\n        }\n        this._changed.emit(void 0);\n    }\n    /**\n     * Serialize the model to JSON.\n     */\n    toJSON() {\n        const output = {};\n        for (const key in this._raw) {\n            output[key] = Private.extract(this._raw, key);\n        }\n        switch (this.type) {\n            case 'display_data':\n            case 'execute_result':\n            case 'update_display_data':\n                output['data'] = this.data;\n                output['metadata'] = this.metadata;\n                break;\n            default:\n                break;\n        }\n        // Remove transient data.\n        delete output['transient'];\n        return output;\n    }\n    /**\n     * Update an observable JSON object using a readonly JSON object.\n     */\n    _updateObservable(observable, data) {\n        const oldKeys = observable.keys();\n        const newKeys = Object.keys(data);\n        // Handle removed keys.\n        for (const key of oldKeys) {\n            if (newKeys.indexOf(key) === -1) {\n                observable.delete(key);\n            }\n        }\n        // Handle changed data.\n        for (const key of newKeys) {\n            const oldValue = observable.get(key);\n            const newValue = data[key];\n            if (oldValue !== newValue) {\n                observable.set(key, newValue);\n            }\n        }\n    }\n}\n/**\n * The namespace for OutputModel statics.\n */\n(function (OutputModel) {\n    /**\n     * Get the data for an output.\n     *\n     * @params output - A kernel output message payload.\n     *\n     * @returns - The data for the payload.\n     */\n    function getData(output) {\n        return Private.getData(output);\n    }\n    OutputModel.getData = getData;\n    /**\n     * Get the metadata from an output message.\n     *\n     * @params output - A kernel output message payload.\n     *\n     * @returns - The metadata for the payload.\n     */\n    function getMetadata(output) {\n        return Private.getMetadata(output);\n    }\n    OutputModel.getMetadata = getMetadata;\n})(OutputModel || (OutputModel = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * Get the data from a notebook output.\n     */\n    function getData(output) {\n        let bundle = {};\n        if (_jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isExecuteResult(output) ||\n            _jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isDisplayData(output) ||\n            _jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isDisplayUpdate(output)) {\n            bundle = output.data;\n        }\n        else if (_jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isStream(output)) {\n            if (output.name === 'stderr') {\n                bundle['application/vnd.jupyter.stderr'] = output.text;\n            }\n            else {\n                bundle['application/vnd.jupyter.stdout'] = output.text;\n            }\n        }\n        else if (_jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isError(output)) {\n            bundle['application/vnd.jupyter.error'] = output;\n            const traceback = output.traceback.join('\\n');\n            bundle['application/vnd.jupyter.stderr'] =\n                traceback || `${output.ename}: ${output.evalue}`;\n        }\n        return convertBundle(bundle);\n    }\n    Private.getData = getData;\n    /**\n     * Get the metadata from an output message.\n     */\n    function getMetadata(output) {\n        const value = Object.create(null);\n        if (_jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isExecuteResult(output) || _jupyterlab_nbformat__WEBPACK_IMPORTED_MODULE_0__.isDisplayData(output)) {\n            for (const key in output.metadata) {\n                value[key] = extract(output.metadata, key);\n            }\n        }\n        return value;\n    }\n    Private.getMetadata = getMetadata;\n    /**\n     * Get the bundle options given output model options.\n     */\n    function getBundleOptions(options) {\n        const data = getData(options.value);\n        const metadata = getMetadata(options.value);\n        const trusted = !!options.trusted;\n        return { data, metadata, trusted };\n    }\n    Private.getBundleOptions = getBundleOptions;\n    /**\n     * Extract a value from a JSONObject.\n     */\n    function extract(value, key) {\n        const item = value[key];\n        if (item === undefined || _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.isPrimitive(item)) {\n            return item;\n        }\n        return JSON.parse(JSON.stringify(item));\n    }\n    Private.extract = extract;\n    /**\n     * Convert a mime bundle to mime data.\n     */\n    function convertBundle(bundle) {\n        const map = Object.create(null);\n        for (const mimeType in bundle) {\n            map[mimeType] = extract(bundle, mimeType);\n        }\n        return map;\n    }\n})(Private || (Private = {}));\n//# sourceMappingURL=outputmodel.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/outputmodel.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/registry.js":
/*!**************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/registry.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"RenderMimeRegistry\": () => (/* binding */ RenderMimeRegistry)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/apputils */ \"webpack/sharing/consume/default/@jupyterlab/apputils/@jupyterlab/apputils\");\n/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _mimemodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimemodel */ \"../node_modules/@jupyterlab/rendermime/lib/mimemodel.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n\n\n/**\n * An object which manages mime renderer factories.\n *\n * This object is used to render mime models using registered mime\n * renderers, selecting the preferred mime renderer to render the\n * model into a widget.\n *\n * #### Notes\n * This class is not intended to be subclassed.\n */\nclass RenderMimeRegistry {\n    /**\n     * Construct a new rendermime.\n     *\n     * @param options - The options for initializing the instance.\n     */\n    constructor(options = {}) {\n        this._id = 0;\n        this._ranks = {};\n        this._types = null;\n        this._factories = {};\n        // Parse the options.\n        this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__.nullTranslator;\n        this.resolver = options.resolver || null;\n        this.linkHandler = options.linkHandler || null;\n        this.latexTypesetter = options.latexTypesetter || null;\n        this.sanitizer = options.sanitizer || _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.defaultSanitizer;\n        // Add the initial factories.\n        if (options.initialFactories) {\n            for (const factory of options.initialFactories) {\n                this.addFactory(factory);\n            }\n        }\n    }\n    /**\n     * The ordered list of mimeTypes.\n     */\n    get mimeTypes() {\n        return this._types || (this._types = Private.sortedTypes(this._ranks));\n    }\n    /**\n     * Find the preferred mime type for a mime bundle.\n     *\n     * @param bundle - The bundle of mime data.\n     *\n     * @param safe - How to consider safe/unsafe factories. If 'ensure',\n     *   it will only consider safe factories. If 'any', any factory will be\n     *   considered. If 'prefer', unsafe factories will be considered, but\n     *   only after the safe options have been exhausted.\n     *\n     * @returns The preferred mime type from the available factories,\n     *   or `undefined` if the mime type cannot be rendered.\n     */\n    preferredMimeType(bundle, safe = 'ensure') {\n        // Try to find a safe factory first, if preferred.\n        if (safe === 'ensure' || safe === 'prefer') {\n            for (const mt of this.mimeTypes) {\n                if (mt in bundle && this._factories[mt].safe) {\n                    return mt;\n                }\n            }\n        }\n        if (safe !== 'ensure') {\n            // Otherwise, search for the best factory among all factories.\n            for (const mt of this.mimeTypes) {\n                if (mt in bundle) {\n                    return mt;\n                }\n            }\n        }\n        // Otherwise, no matching mime type exists.\n        return undefined;\n    }\n    /**\n     * Create a renderer for a mime type.\n     *\n     * @param mimeType - The mime type of interest.\n     *\n     * @returns A new renderer for the given mime type.\n     *\n     * @throws An error if no factory exists for the mime type.\n     */\n    createRenderer(mimeType) {\n        // Throw an error if no factory exists for the mime type.\n        if (!(mimeType in this._factories)) {\n            throw new Error(`No factory for mime type: '${mimeType}'`);\n        }\n        // Invoke the best factory for the given mime type.\n        return this._factories[mimeType].createRenderer({\n            mimeType,\n            resolver: this.resolver,\n            sanitizer: this.sanitizer,\n            linkHandler: this.linkHandler,\n            latexTypesetter: this.latexTypesetter,\n            translator: this.translator\n        });\n    }\n    /**\n     * Create a new mime model.  This is a convenience method.\n     *\n     * @options - The options used to create the model.\n     *\n     * @returns A new mime model.\n     */\n    createModel(options = {}) {\n        return new _mimemodel__WEBPACK_IMPORTED_MODULE_3__.MimeModel(options);\n    }\n    /**\n     * Create a clone of this rendermime instance.\n     *\n     * @param options - The options for configuring the clone.\n     *\n     * @returns A new independent clone of the rendermime.\n     */\n    clone(options = {}) {\n        // Create the clone.\n        const clone = new RenderMimeRegistry({\n            resolver: options.resolver || this.resolver || undefined,\n            sanitizer: options.sanitizer || this.sanitizer || undefined,\n            linkHandler: options.linkHandler || this.linkHandler || undefined,\n            latexTypesetter: options.latexTypesetter || this.latexTypesetter || undefined,\n            translator: this.translator\n        });\n        // Clone the internal state.\n        clone._factories = Object.assign({}, this._factories);\n        clone._ranks = Object.assign({}, this._ranks);\n        clone._id = this._id;\n        // Return the cloned object.\n        return clone;\n    }\n    /**\n     * Get the renderer factory registered for a mime type.\n     *\n     * @param mimeType - The mime type of interest.\n     *\n     * @returns The factory for the mime type, or `undefined`.\n     */\n    getFactory(mimeType) {\n        return this._factories[mimeType];\n    }\n    /**\n     * Add a renderer factory to the rendermime.\n     *\n     * @param factory - The renderer factory of interest.\n     *\n     * @param rank - The rank of the renderer. A lower rank indicates\n     *   a higher priority for rendering. If not given, the rank will\n     *   defer to the `defaultRank` of the factory.  If no `defaultRank`\n     *   is given, it will default to 100.\n     *\n     * #### Notes\n     * The renderer will replace an existing renderer for the given\n     * mimeType.\n     */\n    addFactory(factory, rank) {\n        if (rank === undefined) {\n            rank = factory.defaultRank;\n            if (rank === undefined) {\n                rank = 100;\n            }\n        }\n        for (const mt of factory.mimeTypes) {\n            this._factories[mt] = factory;\n            this._ranks[mt] = { rank, id: this._id++ };\n        }\n        this._types = null;\n    }\n    /**\n     * Remove a mime type.\n     *\n     * @param mimeType - The mime type of interest.\n     */\n    removeMimeType(mimeType) {\n        delete this._factories[mimeType];\n        delete this._ranks[mimeType];\n        this._types = null;\n    }\n    /**\n     * Get the rank for a given mime type.\n     *\n     * @param mimeType - The mime type of interest.\n     *\n     * @returns The rank of the mime type or undefined.\n     */\n    getRank(mimeType) {\n        const rank = this._ranks[mimeType];\n        return rank && rank.rank;\n    }\n    /**\n     * Set the rank of a given mime type.\n     *\n     * @param mimeType - The mime type of interest.\n     *\n     * @param rank - The new rank to assign.\n     *\n     * #### Notes\n     * This is a no-op if the mime type is not registered.\n     */\n    setRank(mimeType, rank) {\n        if (!this._ranks[mimeType]) {\n            return;\n        }\n        const id = this._id++;\n        this._ranks[mimeType] = { rank, id };\n        this._types = null;\n    }\n}\n/**\n * The namespace for `RenderMimeRegistry` class statics.\n */\n(function (RenderMimeRegistry) {\n    /**\n     * A default resolver that uses a given reference path and a contents manager.\n     */\n    class UrlResolver {\n        /**\n         * Create a new url resolver.\n         */\n        constructor(options) {\n            if (options.path) {\n                this._path = options.path;\n            }\n            else if (options.session) {\n                this._session = options.session;\n            }\n            else {\n                throw new Error(\"Either 'path' or 'session' must be given as a constructor option\");\n            }\n            this._contents = options.contents;\n        }\n        /**\n         * The path of the object, from which local urls can be derived.\n         */\n        get path() {\n            var _a;\n            return (_a = this._path) !== null && _a !== void 0 ? _a : this._session.path;\n        }\n        set path(value) {\n            this._path = value;\n        }\n        /**\n         * Resolve a relative url to an absolute url path.\n         */\n        async resolveUrl(url) {\n            if (this.isLocal(url)) {\n                const cwd = encodeURI(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.PathExt.dirname(this.path));\n                url = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.PathExt.resolve(cwd, url);\n            }\n            return url;\n        }\n        /**\n         * Get the download url of a given absolute url path.\n         *\n         * #### Notes\n         * The returned URL may include a query parameter.\n         */\n        async getDownloadUrl(urlPath) {\n            if (this.isLocal(urlPath)) {\n                // decode url->path before passing to contents api\n                return this._contents.getDownloadUrl(decodeURIComponent(urlPath));\n            }\n            return urlPath;\n        }\n        /**\n         * Whether the URL should be handled by the resolver\n         * or not.\n         *\n         * #### Notes\n         * This is similar to the `isLocal` check in `URLExt`,\n         * but it also checks whether the path points to any\n         * of the `IDrive`s that may be registered with the contents\n         * manager.\n         */\n        isLocal(url) {\n            if (this.isMalformed(url)) {\n                return false;\n            }\n            return _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.isLocal(url) || !!this._contents.driveName(decodeURI(url));\n        }\n        /**\n         * Whether the URL can be decoded using `decodeURI`.\n         */\n        isMalformed(url) {\n            try {\n                decodeURI(url);\n                return false;\n            }\n            catch (error) {\n                if (error instanceof URIError) {\n                    return true;\n                }\n                throw error;\n            }\n        }\n    }\n    RenderMimeRegistry.UrlResolver = UrlResolver;\n})(RenderMimeRegistry || (RenderMimeRegistry = {}));\n/**\n * The namespace for the module implementation details.\n */\nvar Private;\n(function (Private) {\n    /**\n     * Get the mime types in the map, ordered by rank.\n     */\n    function sortedTypes(map) {\n        return Object.keys(map).sort((a, b) => {\n            const p1 = map[a];\n            const p2 = map[b];\n            if (p1.rank !== p2.rank) {\n                return p1.rank - p2.rank;\n            }\n            return p1.id - p2.id;\n        });\n    }\n    Private.sortedTypes = sortedTypes;\n    function sessionConnection(s) {\n        return s.sessionChanged\n            ? s.session\n            : s;\n    }\n    Private.sessionConnection = sessionConnection;\n})(Private || (Private = {}));\n//# sourceMappingURL=registry.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/registry.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/renderers.js":
/*!***************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/renderers.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"renderHTML\": () => (/* binding */ renderHTML),\n/* harmony export */   \"renderImage\": () => (/* binding */ renderImage),\n/* harmony export */   \"renderLatex\": () => (/* binding */ renderLatex),\n/* harmony export */   \"renderMarkdown\": () => (/* binding */ renderMarkdown),\n/* harmony export */   \"renderSVG\": () => (/* binding */ renderSVG),\n/* harmony export */   \"renderText\": () => (/* binding */ renderText)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_codemirror__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/codemirror */ \"webpack/sharing/consume/default/@jupyterlab/codemirror/@jupyterlab/codemirror\");\n/* harmony import */ var _jupyterlab_codemirror__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_codemirror__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_escape__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash.escape */ \"../node_modules/lodash.escape/index.js\");\n/* harmony import */ var lodash_escape__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_escape__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! marked */ \"../node_modules/marked/lib/marked.js\");\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(marked__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _latex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./latex */ \"../node_modules/@jupyterlab/rendermime/lib/latex.js\");\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n/**\n * Render HTML into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nfunction renderHTML(options) {\n    // Unpack the options.\n    let { host, source, trusted, sanitizer, resolver, linkHandler, shouldTypeset, latexTypesetter, translator } = options;\n    translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_2__.nullTranslator;\n    const trans = translator === null || translator === void 0 ? void 0 : translator.load('jupyterlab');\n    let originalSource = source;\n    // Bail early if the source is empty.\n    if (!source) {\n        host.textContent = '';\n        return Promise.resolve(undefined);\n    }\n    // Sanitize the source if it is not trusted. This removes all\n    // `<script>` tags as well as other potentially harmful HTML.\n    if (!trusted) {\n        originalSource = `${source}`;\n        source = sanitizer.sanitize(source);\n    }\n    // Set the inner HTML of the host.\n    host.innerHTML = source;\n    if (host.getElementsByTagName('script').length > 0) {\n        // If output it trusted, eval any script tags contained in the HTML.\n        // This is not done automatically by the browser when script tags are\n        // created by setting `innerHTML`.\n        if (trusted) {\n            Private.evalInnerHTMLScriptTags(host);\n        }\n        else {\n            const container = document.createElement('div');\n            const warning = document.createElement('pre');\n            warning.textContent = trans.__('This HTML output contains inline scripts. Are you sure that you want to run arbitrary Javascript within your JupyterLab session?');\n            const runButton = document.createElement('button');\n            runButton.textContent = trans.__('Run');\n            runButton.onclick = event => {\n                host.innerHTML = originalSource;\n                Private.evalInnerHTMLScriptTags(host);\n                if (host.firstChild) {\n                    host.removeChild(host.firstChild);\n                }\n            };\n            container.appendChild(warning);\n            container.appendChild(runButton);\n            host.insertBefore(container, host.firstChild);\n        }\n    }\n    // Handle default behavior of nodes.\n    Private.handleDefaults(host, resolver);\n    // Patch the urls if a resolver is available.\n    let promise;\n    if (resolver) {\n        promise = Private.handleUrls(host, resolver, linkHandler);\n    }\n    else {\n        promise = Promise.resolve(undefined);\n    }\n    // Return the final rendered promise.\n    return promise.then(() => {\n        if (shouldTypeset && latexTypesetter) {\n            latexTypesetter.typeset(host);\n        }\n    });\n}\n/**\n * Render an image into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nfunction renderImage(options) {\n    // Unpack the options.\n    const { host, mimeType, source, width, height, needsBackground, unconfined } = options;\n    // Clear the content in the host.\n    host.textContent = '';\n    // Create the image element.\n    const img = document.createElement('img');\n    // Set the source of the image.\n    img.src = `data:${mimeType};base64,${source}`;\n    // Set the size of the image if provided.\n    if (typeof height === 'number') {\n        img.height = height;\n    }\n    if (typeof width === 'number') {\n        img.width = width;\n    }\n    if (needsBackground === 'light') {\n        img.classList.add('jp-needs-light-background');\n    }\n    else if (needsBackground === 'dark') {\n        img.classList.add('jp-needs-dark-background');\n    }\n    if (unconfined === true) {\n        img.classList.add('jp-mod-unconfined');\n    }\n    // Add the image to the host.\n    host.appendChild(img);\n    // Return the rendered promise.\n    return Promise.resolve(undefined);\n}\n/**\n * Render LaTeX into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nfunction renderLatex(options) {\n    // Unpack the options.\n    const { host, source, shouldTypeset, latexTypesetter } = options;\n    // Set the source on the node.\n    host.textContent = source;\n    // Typeset the node if needed.\n    if (shouldTypeset && latexTypesetter) {\n        latexTypesetter.typeset(host);\n    }\n    // Return the rendered promise.\n    return Promise.resolve(undefined);\n}\n/**\n * Render Markdown into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nasync function renderMarkdown(options) {\n    // Unpack the options.\n    const { host, source } = options, others = __rest(options, [\"host\", \"source\"]);\n    // Clear the content if there is no source.\n    if (!source) {\n        host.textContent = '';\n        return;\n    }\n    // Separate math from normal markdown text.\n    const parts = (0,_latex__WEBPACK_IMPORTED_MODULE_6__.removeMath)(source);\n    // Convert the markdown to HTML.\n    let html = await Private.renderMarked(parts['text']);\n    // Replace math.\n    html = (0,_latex__WEBPACK_IMPORTED_MODULE_6__.replaceMath)(html, parts['math']);\n    // Render HTML.\n    await renderHTML(Object.assign({ host, source: html }, others));\n    // Apply ids to the header nodes.\n    Private.headerAnchors(host);\n}\n/**\n * Render SVG into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nfunction renderSVG(options) {\n    // Unpack the options.\n    let { host, source, trusted, unconfined } = options;\n    // Clear the content if there is no source.\n    if (!source) {\n        host.textContent = '';\n        return Promise.resolve(undefined);\n    }\n    // Display a message if the source is not trusted.\n    if (!trusted) {\n        host.textContent =\n            'Cannot display an untrusted SVG. Maybe you need to run the cell?';\n        return Promise.resolve(undefined);\n    }\n    // Add missing SVG namespace (if actually missing)\n    const patt = '<svg[^>]+xmlns=[^>]+svg';\n    if (source.search(patt) < 0) {\n        source = source.replace('<svg', '<svg xmlns=\"http://www.w3.org/2000/svg\"');\n    }\n    // Render in img so that user can save it easily\n    const img = new Image();\n    img.src = `data:image/svg+xml,${encodeURIComponent(source)}`;\n    host.appendChild(img);\n    if (unconfined === true) {\n        host.classList.add('jp-mod-unconfined');\n    }\n    return Promise.resolve();\n}\n/**\n * Replace URLs with links.\n *\n * @param content - The plain text content.\n *\n * @returns The content where all URLs have been replaced with corresponding links.\n */\nfunction autolink(content) {\n    // Taken from Visual Studio Code:\n    // https://github.com/microsoft/vscode/blob/9f709d170b06e991502153f281ec3c012add2e42/src/vs/workbench/contrib/debug/browser/linkDetector.ts#L17-L18\n    const controlCodes = '\\\\u0000-\\\\u0020\\\\u007f-\\\\u009f';\n    const webLinkRegex = new RegExp('(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\\\/\\\\/|data:|www\\\\.)[^\\\\s' +\n        controlCodes +\n        '\"]{2,}[^\\\\s' +\n        controlCodes +\n        '\"\\'(){}\\\\[\\\\],:;.!?]', 'ug');\n    return content.replace(webLinkRegex, url => {\n        // Special case when the URL ends with \">\" or \"<\"\n        const lastChars = url.slice(-3);\n        const endsWithGtLt = ['&gt', '&lt'].indexOf(lastChars) !== -1;\n        const toAppend = endsWithGtLt ? lastChars : '';\n        const len = endsWithGtLt ? url.length - 3 : url.length;\n        return (`<a href=\"${url.slice(0, len)}\" rel=\"noopener\" target=\"_blank\">` +\n            `${url.slice(0, len)}</a>${toAppend}`);\n    });\n}\n/**\n * Render text into a host node.\n *\n * @params options - The options for rendering.\n *\n * @returns A promise which resolves when rendering is complete.\n */\nfunction renderText(options) {\n    // Unpack the options.\n    const { host, sanitizer, source } = options;\n    // Create the HTML content.\n    const content = sanitizer.sanitize(Private.ansiSpan(source), {\n        allowedTags: ['span']\n    });\n    // Set the sanitized content for the host node.\n    const pre = document.createElement('pre');\n    pre.innerHTML = autolink(content);\n    host.appendChild(pre);\n    // Return the rendered promise.\n    return Promise.resolve(undefined);\n}\n/**\n * The namespace for module implementation details.\n */\nvar Private;\n(function (Private) {\n    /**\n     * Eval the script tags contained in a host populated by `innerHTML`.\n     *\n     * When script tags are created via `innerHTML`, the browser does not\n     * evaluate them when they are added to the page. This function works\n     * around that by creating new equivalent script nodes manually, and\n     * replacing the originals.\n     */\n    function evalInnerHTMLScriptTags(host) {\n        // Create a snapshot of the current script nodes.\n        const scripts = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_3__.toArray)(host.getElementsByTagName('script'));\n        // Loop over each script node.\n        for (const script of scripts) {\n            // Skip any scripts which no longer have a parent.\n            if (!script.parentNode) {\n                continue;\n            }\n            // Create a new script node which will be clone.\n            const clone = document.createElement('script');\n            // Copy the attributes into the clone.\n            const attrs = script.attributes;\n            for (let i = 0, n = attrs.length; i < n; ++i) {\n                const { name, value } = attrs[i];\n                clone.setAttribute(name, value);\n            }\n            // Copy the text content into the clone.\n            clone.textContent = script.textContent;\n            // Replace the old script in the parent.\n            script.parentNode.replaceChild(clone, script);\n        }\n    }\n    Private.evalInnerHTMLScriptTags = evalInnerHTMLScriptTags;\n    /**\n     * Render markdown for the specified content.\n     *\n     * @param content - The string of markdown to render.\n     *\n     * @return A promise which resolves with the rendered content.\n     */\n    function renderMarked(content) {\n        initializeMarked();\n        return new Promise((resolve, reject) => {\n            marked__WEBPACK_IMPORTED_MODULE_5___default()(content, (err, content) => {\n                if (err) {\n                    reject(err);\n                }\n                else {\n                    resolve(content);\n                }\n            });\n        });\n    }\n    Private.renderMarked = renderMarked;\n    /**\n     * Handle the default behavior of nodes.\n     */\n    function handleDefaults(node, resolver) {\n        // Handle anchor elements.\n        const anchors = node.getElementsByTagName('a');\n        for (let i = 0; i < anchors.length; i++) {\n            const el = anchors[i];\n            // skip when processing a elements inside svg\n            // which are of type SVGAnimatedString\n            if (!(el instanceof HTMLAnchorElement)) {\n                continue;\n            }\n            const path = el.href;\n            const isLocal = resolver && resolver.isLocal\n                ? resolver.isLocal(path)\n                : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.isLocal(path);\n            // set target attribute if not already present\n            if (!el.target) {\n                el.target = isLocal ? '_self' : '_blank';\n            }\n            // set rel as 'noopener' for non-local anchors\n            if (!isLocal) {\n                el.rel = 'noopener';\n            }\n        }\n        // Handle image elements.\n        const imgs = node.getElementsByTagName('img');\n        for (let i = 0; i < imgs.length; i++) {\n            if (!imgs[i].alt) {\n                imgs[i].alt = 'Image';\n            }\n        }\n    }\n    Private.handleDefaults = handleDefaults;\n    /**\n     * Resolve the relative urls in element `src` and `href` attributes.\n     *\n     * @param node - The head html element.\n     *\n     * @param resolver - A url resolver.\n     *\n     * @param linkHandler - An optional link handler for nodes.\n     *\n     * @returns a promise fulfilled when the relative urls have been resolved.\n     */\n    function handleUrls(node, resolver, linkHandler) {\n        // Set up an array to collect promises.\n        const promises = [];\n        // Handle HTML Elements with src attributes.\n        const nodes = node.querySelectorAll('*[src]');\n        for (let i = 0; i < nodes.length; i++) {\n            promises.push(handleAttr(nodes[i], 'src', resolver));\n        }\n        // Handle anchor elements.\n        const anchors = node.getElementsByTagName('a');\n        for (let i = 0; i < anchors.length; i++) {\n            promises.push(handleAnchor(anchors[i], resolver, linkHandler));\n        }\n        // Handle link elements.\n        const links = node.getElementsByTagName('link');\n        for (let i = 0; i < links.length; i++) {\n            promises.push(handleAttr(links[i], 'href', resolver));\n        }\n        // Wait on all promises.\n        return Promise.all(promises).then(() => undefined);\n    }\n    Private.handleUrls = handleUrls;\n    /**\n     * Apply ids to headers.\n     */\n    function headerAnchors(node) {\n        var _a;\n        const headerNames = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n        for (const headerType of headerNames) {\n            const headers = node.getElementsByTagName(headerType);\n            for (let i = 0; i < headers.length; i++) {\n                const header = headers[i];\n                header.id = ((_a = header.textContent) !== null && _a !== void 0 ? _a : '').replace(/ /g, '-');\n                const anchor = document.createElement('a');\n                anchor.target = '_self';\n                anchor.textContent = '¶';\n                anchor.href = '#' + header.id;\n                anchor.classList.add('jp-InternalAnchorLink');\n                header.appendChild(anchor);\n            }\n        }\n    }\n    Private.headerAnchors = headerAnchors;\n    /**\n     * Handle a node with a `src` or `href` attribute.\n     */\n    async function handleAttr(node, name, resolver) {\n        const source = node.getAttribute(name) || '';\n        const isLocal = resolver.isLocal\n            ? resolver.isLocal(source)\n            : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.isLocal(source);\n        if (!source || !isLocal) {\n            return;\n        }\n        try {\n            const urlPath = await resolver.resolveUrl(source);\n            let url = await resolver.getDownloadUrl(urlPath);\n            if (_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.parse(url).protocol !== 'data:') {\n                // Bust caching for local src attrs.\n                // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n                url += (/\\?/.test(url) ? '&' : '?') + new Date().getTime();\n            }\n            node.setAttribute(name, url);\n        }\n        catch (err) {\n            // If there was an error getting the url,\n            // just make it an empty link and report the error.\n            node.setAttribute(name, '');\n            throw err;\n        }\n    }\n    /**\n     * Handle an anchor node.\n     */\n    function handleAnchor(anchor, resolver, linkHandler) {\n        // Get the link path without the location prepended.\n        // (e.g. \"./foo.md#Header 1\" vs \"http://localhost:8888/foo.md#Header 1\")\n        let href = anchor.getAttribute('href') || '';\n        const isLocal = resolver.isLocal\n            ? resolver.isLocal(href)\n            : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_1__.URLExt.isLocal(href);\n        // Bail if it is not a file-like url.\n        if (!href || !isLocal) {\n            return Promise.resolve(undefined);\n        }\n        // Remove the hash until we can handle it.\n        const hash = anchor.hash;\n        if (hash) {\n            // Handle internal link in the file.\n            if (hash === href) {\n                anchor.target = '_self';\n                return Promise.resolve(undefined);\n            }\n            // For external links, remove the hash until we have hash handling.\n            href = href.replace(hash, '');\n        }\n        // Get the appropriate file path.\n        return resolver\n            .resolveUrl(href)\n            .then(urlPath => {\n            // decode encoded url from url to api path\n            const path = decodeURIComponent(urlPath);\n            // Handle the click override.\n            if (linkHandler) {\n                linkHandler.handleLink(anchor, path, hash);\n            }\n            // Get the appropriate file download path.\n            return resolver.getDownloadUrl(urlPath);\n        })\n            .then(url => {\n            // Set the visible anchor.\n            anchor.href = url + hash;\n        })\n            .catch(err => {\n            // If there was an error getting the url,\n            // just make it an empty link.\n            anchor.href = '';\n        });\n    }\n    let markedInitialized = false;\n    /**\n     * Support GitHub flavored Markdown, leave sanitizing to external library.\n     */\n    function initializeMarked() {\n        if (markedInitialized) {\n            return;\n        }\n        markedInitialized = true;\n        marked__WEBPACK_IMPORTED_MODULE_5___default().setOptions({\n            gfm: true,\n            sanitize: false,\n            // breaks: true; We can't use GFM breaks as it causes problems with tables\n            langPrefix: `cm-s-${_jupyterlab_codemirror__WEBPACK_IMPORTED_MODULE_0__.CodeMirrorEditor.defaultConfig.theme} language-`,\n            highlight: (code, lang, callback) => {\n                const cb = (err, code) => {\n                    if (callback) {\n                        callback(err, code);\n                    }\n                    return code;\n                };\n                if (!lang) {\n                    // no language, no highlight\n                    return cb(null, code);\n                }\n                _jupyterlab_codemirror__WEBPACK_IMPORTED_MODULE_0__.Mode.ensure(lang)\n                    .then(spec => {\n                    const el = document.createElement('div');\n                    if (!spec) {\n                        console.error(`No CodeMirror mode: ${lang}`);\n                        return cb(null, code);\n                    }\n                    try {\n                        _jupyterlab_codemirror__WEBPACK_IMPORTED_MODULE_0__.Mode.run(code, spec.mime, el);\n                        return cb(null, el.innerHTML);\n                    }\n                    catch (err) {\n                        console.error(`Failed to highlight ${lang} code`, err);\n                        return cb(err, code);\n                    }\n                })\n                    .catch(err => {\n                    console.error(`No CodeMirror mode: ${lang}`);\n                    console.error(`Require CodeMirror mode error: ${err}`);\n                    return cb(null, code);\n                });\n                return code;\n            }\n        });\n    }\n    const ANSI_COLORS = [\n        'ansi-black',\n        'ansi-red',\n        'ansi-green',\n        'ansi-yellow',\n        'ansi-blue',\n        'ansi-magenta',\n        'ansi-cyan',\n        'ansi-white',\n        'ansi-black-intense',\n        'ansi-red-intense',\n        'ansi-green-intense',\n        'ansi-yellow-intense',\n        'ansi-blue-intense',\n        'ansi-magenta-intense',\n        'ansi-cyan-intense',\n        'ansi-white-intense'\n    ];\n    /**\n     * Create HTML tags for a string with given foreground, background etc. and\n     * add them to the `out` array.\n     */\n    function pushColoredChunk(chunk, fg, bg, bold, underline, inverse, out) {\n        if (chunk) {\n            const classes = [];\n            const styles = [];\n            if (bold && typeof fg === 'number' && 0 <= fg && fg < 8) {\n                fg += 8; // Bold text uses \"intense\" colors\n            }\n            if (inverse) {\n                [fg, bg] = [bg, fg];\n            }\n            if (typeof fg === 'number') {\n                classes.push(ANSI_COLORS[fg] + '-fg');\n            }\n            else if (fg.length) {\n                styles.push(`color: rgb(${fg})`);\n            }\n            else if (inverse) {\n                classes.push('ansi-default-inverse-fg');\n            }\n            if (typeof bg === 'number') {\n                classes.push(ANSI_COLORS[bg] + '-bg');\n            }\n            else if (bg.length) {\n                styles.push(`background-color: rgb(${bg})`);\n            }\n            else if (inverse) {\n                classes.push('ansi-default-inverse-bg');\n            }\n            if (bold) {\n                classes.push('ansi-bold');\n            }\n            if (underline) {\n                classes.push('ansi-underline');\n            }\n            if (classes.length || styles.length) {\n                out.push('<span');\n                if (classes.length) {\n                    out.push(` class=\"${classes.join(' ')}\"`);\n                }\n                if (styles.length) {\n                    out.push(` style=\"${styles.join('; ')}\"`);\n                }\n                out.push('>');\n                out.push(chunk);\n                out.push('</span>');\n            }\n            else {\n                out.push(chunk);\n            }\n        }\n    }\n    /**\n     * Convert ANSI extended colors to R/G/B triple.\n     */\n    function getExtendedColors(numbers) {\n        let r;\n        let g;\n        let b;\n        const n = numbers.shift();\n        if (n === 2 && numbers.length >= 3) {\n            // 24-bit RGB\n            r = numbers.shift();\n            g = numbers.shift();\n            b = numbers.shift();\n            if ([r, g, b].some(c => c < 0 || 255 < c)) {\n                throw new RangeError('Invalid range for RGB colors');\n            }\n        }\n        else if (n === 5 && numbers.length >= 1) {\n            // 256 colors\n            const idx = numbers.shift();\n            if (idx < 0) {\n                throw new RangeError('Color index must be >= 0');\n            }\n            else if (idx < 16) {\n                // 16 default terminal colors\n                return idx;\n            }\n            else if (idx < 232) {\n                // 6x6x6 color cube, see https://stackoverflow.com/a/27165165/500098\n                r = Math.floor((idx - 16) / 36);\n                r = r > 0 ? 55 + r * 40 : 0;\n                g = Math.floor(((idx - 16) % 36) / 6);\n                g = g > 0 ? 55 + g * 40 : 0;\n                b = (idx - 16) % 6;\n                b = b > 0 ? 55 + b * 40 : 0;\n            }\n            else if (idx < 256) {\n                // grayscale, see https://stackoverflow.com/a/27165165/500098\n                r = g = b = (idx - 232) * 10 + 8;\n            }\n            else {\n                throw new RangeError('Color index must be < 256');\n            }\n        }\n        else {\n            throw new RangeError('Invalid extended color specification');\n        }\n        return [r, g, b];\n    }\n    /**\n     * Transform ANSI color escape codes into HTML <span> tags with CSS\n     * classes such as \"ansi-green-intense-fg\".\n     * The actual colors used are set in the CSS file.\n     * This also removes non-color escape sequences.\n     * This is supposed to have the same behavior as nbconvert.filters.ansi2html()\n     */\n    function ansiSpan(str) {\n        const ansiRe = /\\x1b\\[(.*?)([@-~])/g; // eslint-disable-line no-control-regex\n        let fg = [];\n        let bg = [];\n        let bold = false;\n        let underline = false;\n        let inverse = false;\n        let match;\n        const out = [];\n        const numbers = [];\n        let start = 0;\n        str = lodash_escape__WEBPACK_IMPORTED_MODULE_4___default()(str);\n        str += '\\x1b[m'; // Ensure markup for trailing text\n        // tslint:disable-next-line\n        while ((match = ansiRe.exec(str))) {\n            if (match[2] === 'm') {\n                const items = match[1].split(';');\n                for (let i = 0; i < items.length; i++) {\n                    const item = items[i];\n                    if (item === '') {\n                        numbers.push(0);\n                    }\n                    else if (item.search(/^\\d+$/) !== -1) {\n                        numbers.push(parseInt(item, 10));\n                    }\n                    else {\n                        // Ignored: Invalid color specification\n                        numbers.length = 0;\n                        break;\n                    }\n                }\n            }\n            else {\n                // Ignored: Not a color code\n            }\n            const chunk = str.substring(start, match.index);\n            pushColoredChunk(chunk, fg, bg, bold, underline, inverse, out);\n            start = ansiRe.lastIndex;\n            while (numbers.length) {\n                const n = numbers.shift();\n                switch (n) {\n                    case 0:\n                        fg = bg = [];\n                        bold = false;\n                        underline = false;\n                        inverse = false;\n                        break;\n                    case 1:\n                    case 5:\n                        bold = true;\n                        break;\n                    case 4:\n                        underline = true;\n                        break;\n                    case 7:\n                        inverse = true;\n                        break;\n                    case 21:\n                    case 22:\n                        bold = false;\n                        break;\n                    case 24:\n                        underline = false;\n                        break;\n                    case 27:\n                        inverse = false;\n                        break;\n                    case 30:\n                    case 31:\n                    case 32:\n                    case 33:\n                    case 34:\n                    case 35:\n                    case 36:\n                    case 37:\n                        fg = n - 30;\n                        break;\n                    case 38:\n                        try {\n                            fg = getExtendedColors(numbers);\n                        }\n                        catch (e) {\n                            numbers.length = 0;\n                        }\n                        break;\n                    case 39:\n                        fg = [];\n                        break;\n                    case 40:\n                    case 41:\n                    case 42:\n                    case 43:\n                    case 44:\n                    case 45:\n                    case 46:\n                    case 47:\n                        bg = n - 40;\n                        break;\n                    case 48:\n                        try {\n                            bg = getExtendedColors(numbers);\n                        }\n                        catch (e) {\n                            numbers.length = 0;\n                        }\n                        break;\n                    case 49:\n                        bg = [];\n                        break;\n                    case 90:\n                    case 91:\n                    case 92:\n                    case 93:\n                    case 94:\n                    case 95:\n                    case 96:\n                    case 97:\n                        fg = n - 90 + 8;\n                        break;\n                    case 100:\n                    case 101:\n                    case 102:\n                    case 103:\n                    case 104:\n                    case 105:\n                    case 106:\n                    case 107:\n                        bg = n - 100 + 8;\n                        break;\n                    default:\n                    // Unknown codes are ignored\n                }\n            }\n        }\n        return out.join('');\n    }\n    Private.ansiSpan = ansiSpan;\n})(Private || (Private = {}));\n//# sourceMappingURL=renderers.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/renderers.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/tokens.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/tokens.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"IRenderMimeRegistry\": () => (/* binding */ IRenderMimeRegistry),\n/* harmony export */   \"ILatexTypesetter\": () => (/* binding */ ILatexTypesetter)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* tslint:disable */\n/**\n * The rendermime token.\n */\nconst IRenderMimeRegistry = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/rendermime:IRenderMimeRegistry');\n/* tslint:enable */\n/* tslint:disable */\n/**\n * The latex typesetter token.\n */\nconst ILatexTypesetter = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/rendermime:ILatexTypesetter');\n/* tslint:enable */\n//# sourceMappingURL=tokens.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/tokens.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/rendermime/lib/widgets.js":
/*!*************************************************************!*\
  !*** ../node_modules/@jupyterlab/rendermime/lib/widgets.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"RenderedCommon\": () => (/* binding */ RenderedCommon),\n/* harmony export */   \"RenderedHTMLCommon\": () => (/* binding */ RenderedHTMLCommon),\n/* harmony export */   \"RenderedHTML\": () => (/* binding */ RenderedHTML),\n/* harmony export */   \"RenderedLatex\": () => (/* binding */ RenderedLatex),\n/* harmony export */   \"RenderedImage\": () => (/* binding */ RenderedImage),\n/* harmony export */   \"RenderedMarkdown\": () => (/* binding */ RenderedMarkdown),\n/* harmony export */   \"RenderedSVG\": () => (/* binding */ RenderedSVG),\n/* harmony export */   \"RenderedText\": () => (/* binding */ RenderedText),\n/* harmony export */   \"RenderedJavaScript\": () => (/* binding */ RenderedJavaScript)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _renderers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./renderers */ \"../node_modules/@jupyterlab/rendermime/lib/renderers.js\");\n\n\n\n/**\n * A common base class for mime renderers.\n */\nclass RenderedCommon extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget {\n    /**\n     * Construct a new rendered common widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super();\n        this.mimeType = options.mimeType;\n        this.sanitizer = options.sanitizer;\n        this.resolver = options.resolver;\n        this.linkHandler = options.linkHandler;\n        this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n        this.latexTypesetter = options.latexTypesetter;\n        this.node.dataset['mimeType'] = this.mimeType;\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     *\n     * #### Notes\n     * If the DOM node for this widget already has content, it is emptied\n     * before rendering. Subclasses that do not want this behavior\n     * (if, for instance, they are using DOM diffing), should override\n     * this method and not call `super.renderModel()`.\n     */\n    async renderModel(model) {\n        // TODO compare model against old model for early bail?\n        // Empty any existing content in the node from previous renders\n        while (this.node.firstChild) {\n            this.node.removeChild(this.node.firstChild);\n        }\n        // Toggle the trusted class on the widget.\n        this.toggleClass('jp-mod-trusted', model.trusted);\n        // Render the actual content.\n        await this.render(model);\n        // Handle the fragment identifier if given.\n        const { fragment } = model.metadata;\n        if (fragment) {\n            this.setFragment(fragment);\n        }\n    }\n    /**\n     * Set the URI fragment identifier.\n     *\n     * @param fragment - The URI fragment identifier.\n     */\n    setFragment(fragment) {\n        /* no-op */\n    }\n}\n/**\n * A common base class for HTML mime renderers.\n */\nclass RenderedHTMLCommon extends RenderedCommon {\n    /**\n     * Construct a new rendered HTML common widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedHTMLCommon');\n    }\n    setFragment(fragment) {\n        let el;\n        try {\n            el = this.node.querySelector(fragment);\n        }\n        catch (error) {\n            console.warn('Unable to set URI fragment identifier.', error);\n        }\n        if (el) {\n            el.scrollIntoView();\n        }\n    }\n}\n/**\n * A mime renderer for displaying HTML and math.\n */\nclass RenderedHTML extends RenderedHTMLCommon {\n    /**\n     * Construct a new rendered HTML widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedHTML');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderHTML({\n            host: this.node,\n            source: String(model.data[this.mimeType]),\n            trusted: model.trusted,\n            resolver: this.resolver,\n            sanitizer: this.sanitizer,\n            linkHandler: this.linkHandler,\n            shouldTypeset: this.isAttached,\n            latexTypesetter: this.latexTypesetter,\n            translator: this.translator\n        });\n    }\n    /**\n     * A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        if (this.latexTypesetter) {\n            this.latexTypesetter.typeset(this.node);\n        }\n    }\n}\n/**\n * A mime renderer for displaying LaTeX output.\n */\nclass RenderedLatex extends RenderedCommon {\n    /**\n     * Construct a new rendered LaTeX widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedLatex');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderLatex({\n            host: this.node,\n            source: String(model.data[this.mimeType]),\n            shouldTypeset: this.isAttached,\n            latexTypesetter: this.latexTypesetter\n        });\n    }\n    /**\n     * A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        if (this.latexTypesetter) {\n            this.latexTypesetter.typeset(this.node);\n        }\n    }\n}\n/**\n * A mime renderer for displaying images.\n */\nclass RenderedImage extends RenderedCommon {\n    /**\n     * Construct a new rendered image widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedImage');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        const metadata = model.metadata[this.mimeType];\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderImage({\n            host: this.node,\n            mimeType: this.mimeType,\n            source: String(model.data[this.mimeType]),\n            width: metadata && metadata.width,\n            height: metadata && metadata.height,\n            needsBackground: model.metadata['needs_background'],\n            unconfined: metadata && metadata.unconfined\n        });\n    }\n}\n/**\n * A mime renderer for displaying Markdown with embedded latex.\n */\nclass RenderedMarkdown extends RenderedHTMLCommon {\n    /**\n     * Construct a new rendered markdown widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedMarkdown');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderMarkdown({\n            host: this.node,\n            source: String(model.data[this.mimeType]),\n            trusted: model.trusted,\n            resolver: this.resolver,\n            sanitizer: this.sanitizer,\n            linkHandler: this.linkHandler,\n            shouldTypeset: this.isAttached,\n            latexTypesetter: this.latexTypesetter,\n            translator: this.translator\n        });\n    }\n    /**\n     * A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        if (this.latexTypesetter) {\n            this.latexTypesetter.typeset(this.node);\n        }\n    }\n}\n/**\n * A widget for displaying SVG content.\n */\nclass RenderedSVG extends RenderedCommon {\n    /**\n     * Construct a new rendered SVG widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedSVG');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        const metadata = model.metadata[this.mimeType];\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderSVG({\n            host: this.node,\n            source: String(model.data[this.mimeType]),\n            trusted: model.trusted,\n            unconfined: metadata && metadata.unconfined,\n            translator: this.translator\n        });\n    }\n    /**\n     * A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        if (this.latexTypesetter) {\n            this.latexTypesetter.typeset(this.node);\n        }\n    }\n}\n/**\n * A widget for displaying plain text and console text.\n */\nclass RenderedText extends RenderedCommon {\n    /**\n     * Construct a new rendered text widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedText');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderText({\n            host: this.node,\n            sanitizer: this.sanitizer,\n            source: String(model.data[this.mimeType]),\n            translator: this.translator\n        });\n    }\n}\n/**\n * A widget for displaying JavaScript output.\n */\nclass RenderedJavaScript extends RenderedCommon {\n    /**\n     * Construct a new rendered text widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this.addClass('jp-RenderedJavaScript');\n    }\n    /**\n     * Render a mime model.\n     *\n     * @param model - The mime model to render.\n     *\n     * @returns A promise which resolves when rendering is complete.\n     */\n    render(model) {\n        const trans = this.translator.load('jupyterlab');\n        return _renderers__WEBPACK_IMPORTED_MODULE_2__.renderText({\n            host: this.node,\n            sanitizer: this.sanitizer,\n            source: trans.__('JavaScript output is disabled in JupyterLab'),\n            translator: this.translator\n        });\n    }\n}\n//# sourceMappingURL=widgets.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/rendermime/lib/widgets.js?");

/***/ }),

/***/ "../node_modules/lodash.escape/index.js":
/*!**********************************************!*\
  !*** ../node_modules/lodash.escape/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"'`]/g,\n    reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\n  '`': '&#96;'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n  return function(key) {\n    return object == null ? undefined : object[key];\n  };\n}\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', \"'\", and \"\\`\" in `string` to\n * their corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * Backticks are escaped because in IE < 9, they can break out of\n * attribute values or HTML comments. See [#59](https://html5sec.org/#59),\n * [#102](https://html5sec.org/#102), [#108](https://html5sec.org/#108), and\n * [#133](https://html5sec.org/#133) of the\n * [HTML5 Security Cheatsheet](https://html5sec.org/) for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, &amp; pebbles'\n */\nfunction escape(string) {\n  string = toString(string);\n  return (string && reHasUnescapedHtml.test(string))\n    ? string.replace(reUnescapedHtml, escapeHtmlChar)\n    : string;\n}\n\nmodule.exports = escape;\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lodash.escape/index.js?");

/***/ })

}]);