You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
30 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps 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/).
*/
exports.id = "vendor-chunks/mdast-util-math";
exports.ids = ["vendor-chunks/mdast-util-math"];
exports.modules = {
/***/ "(ssr)/./node_modules/mdast-util-math/lib/index.js":
/*!***************************************************!*\
!*** ./node_modules/mdast-util-math/lib/index.js ***!
\***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mathFromMarkdown: () => (/* binding */ mathFromMarkdown),\n/* harmony export */ mathToMarkdown: () => (/* binding */ mathToMarkdown)\n/* harmony export */ });\n/* harmony import */ var longest_streak__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! longest-streak */ \"(ssr)/./node_modules/longest-streak/index.js\");\n/* harmony import */ var mdast_util_to_markdown_lib_util_safe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mdast-util-to-markdown/lib/util/safe.js */ \"(ssr)/./node_modules/mdast-util-to-markdown/lib/util/safe.js\");\n/* harmony import */ var mdast_util_to_markdown_lib_util_track_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-to-markdown/lib/util/track.js */ \"(ssr)/./node_modules/mdast-util-to-markdown/lib/util/track.js\");\n/* harmony import */ var mdast_util_to_markdown_lib_util_pattern_compile_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mdast-util-to-markdown/lib/util/pattern-compile.js */ \"(ssr)/./node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js\");\n/**\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('../index.js').Math} Math\n * @typedef {import('../index.js').InlineMath} InlineMath\n *\n * @typedef ToOptions\n * Configuration.\n * @property {boolean | null | undefined} [singleDollarTextMath=true]\n * Whether to support math (text) with a single dollar.\n *\n * Single dollars work in Pandoc and many other places, but often interfere\n * with “normal” dollars in text.\n * If you turn this off, you can still use two or more dollars for text math.\n */ \n\n\n\n/**\n * Create an extension for `mdast-util-from-markdown`.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */ function mathFromMarkdown() {\n return {\n enter: {\n mathFlow: enterMathFlow,\n mathFlowFenceMeta: enterMathFlowMeta,\n mathText: enterMathText\n },\n exit: {\n mathFlow: exitMathFlow,\n mathFlowFence: exitMathFlowFence,\n mathFlowFenceMeta: exitMathFlowMeta,\n mathFlowValue: exitMathData,\n mathText: exitMathText,\n mathTextData: exitMathData\n }\n };\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterMathFlow(token) {\n this.enter({\n type: \"math\",\n meta: null,\n value: \"\",\n data: {\n hName: \"div\",\n hProperties: {\n className: [\n \"math\",\n \"math-display\"\n ]\n },\n hChildren: [\n {\n type: \"text\",\n value: \"\"\n }\n ]\n }\n }, token);\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterMathFlowMeta() {\n this.buffer();\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitMathFlowMeta() {\n const data = this.resume();\n const node = /** @type {Math} */ this.stack[this.stack.length - 1];\n node.meta = data;\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitMathFlowFence() {\n // Exit if this is the closing fence.\n if (this.getData(\"mathFlowInside\")) return;\n this.buffer();\n this.setData(\"mathFlowInside\", true);\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitMathFlow(token) {\n const data = this.resume().replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, \"\");\n const node = /** @type {Math} */ this.exit(token);\n node.value = data;\n // @ts-expect-error: we defined it.\n node.data.hChildren[0].value = data;\n this.setData(\"mathFlowInside\");\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function enterMathText(token) {\n this.enter({\n type: \"inlineMath\",\n value: \"\",\n data: {\n hName: \"span\",\n hProperties: {\n className: [\n \"math\",\n \"math-inline\"\n ]\n },\n hChildren: [\n {\n type: \"text\",\n value: \"\"\n }\n ]\n }\n }, token);\n this.buffer();\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitMathText(token) {\n const data = this.resume();\n const node = /** @type {Math} */ this.exit(token);\n node.value = data;\n // @ts-expect-error: we defined it.\n node.data.hChildren[0].value = data;\n }\n /**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */ function exitMathData(token) {\n this.config.enter.data.call(this, token);\n this.config.exit.data.call(this, token);\n }\n}\n/**\n * Create an extension for `mdast-util-to-markdown`.\n *\n * @param {ToOptions | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */ function mathToMarkdown(options) {\n let single = (options || {}).singleDollarTextMath;\n if (single === null || single === undefined) {\n single = true;\n }\n inlineMath.peek = inlineMathPeek;\n return {\n unsafe: [\n {\n character: \"\\r\",\n inConstruct: \"mathFlowMeta\"\n },\n {\n character: \"\\n\",\n inConstruct: \"mathFlowMeta\"\n },\n {\n character: \"$\",\n after: single ? undefined : \"\\\\$\",\n inConstruct: \"phrasing\"\n },\n {\n character: \"$\",\n inConstruct: \"mathFlowMeta\"\n },\n {\n atBreak: true,\n character: \"$\",\n after: \"\\\\$\"\n }\n ],\n handlers: {\n math,\n inlineMath\n }\n };\n /**\n * @type {ToMarkdownHandle}\n * @param {Math} node\n */ // To do: next major: rename `context` to state, `safeOptions` to info.\n // Note: fixing this code? Please also fix the similar code for code:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/main/lib/handle/code.js>\n function math(node, _, context, safeOptions) {\n const raw = node.value || \"\";\n const tracker = (0,mdast_util_to_markdown_lib_util_track_js__WEBPACK_IMPORTED_MODULE_0__.track)(safeOptions);\n const sequence = \"$\".repeat(Math.max((0,longest_streak__WEBPACK_IMPORTED_MODULE_1__.longestStreak)(raw, \"$\") + 1, 2));\n const exit = context.enter(\"mathFlow\");\n let value = tracker.move(sequence);\n if (node.meta) {\n const subexit = context.enter(\"mathFlowMeta\");\n value += tracker.move((0,mdast_util_to_markdown_lib_util_safe_js__WEBPACK_IMPORTED_MODULE_2__.safe)(context, node.meta, {\n before: value,\n after: \"\\n\",\n encode: [\n \"$\"\n ],\n ...tracker.current()\n }));\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit();\n return value;\n }\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineMath} node\n */ // Note: fixing this code? Please also fix the similar code for inline code:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/main/lib/handle/inline-code.js>\n //\n // To do: next major: rename `context` to state.\n // To do: next major: use `state` (`safe`, `track`, `patternCompile`).\n function inlineMath(node, _, context) {\n let value = node.value || \"\";\n let size = 1;\n if (!single) size++;\n // If there is a single dollar sign on its own in the math, use a fence of\n // two.\n // If there are two in a row, use one.\n while(new RegExp(\"(^|[^$])\" + \"\\\\$\".repeat(size) + \"([^$]|$)\").test(value)){\n size++;\n }\n const sequence = \"$\".repeat(size);\n // If this is not just spaces or eols (tabs dont count), and either the\n // first and last character are a space or eol, or the first or last\n // character are dollar signs, then pad with spaces.\n if (// Contains non-space.\n /[^ \\r\\n]/.test(value) && // Starts with space and ends with space.\n (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || // Starts or ends with dollar.\n /^\\$|\\$$/.test(value))) {\n value = \" \" + value + \" \";\n }\n let index = -1;\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We cant escape characters in `inlineMath`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while(++index < context.unsafe.length){\n const pattern = context.unsafe[index];\n const expression = (0,mdast_util_to_markdown_lib_util_pattern_compile_js__WEBPACK_IMPORTED_MODULE_3__.patternCompile)(pattern);\n /** @type {RegExpExecArray | null} */ let match;\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue;\n while(match = expression.exec(value)){\n let position = match.index;\n // Support CRLF (patterns only look for one of the characters).\n if (value.codePointAt(position) === 10 /* `\\n` */ && value.codePointAt(position - 1) === 13 /* `\\r` */ ) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n }\n /**\n * @returns {string}\n */ function inlineMathPeek() {\n return \"$\";\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1tYXRoL2xpYi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FFMkM7QUFDZ0I7QUFDRTtBQUNtQjtBQUVqRjs7Ozs7Q0FLQyxHQUNNLFNBQVNJO0lBQ2QsT0FBTztRQUNMQyxPQUFPO1lBQ0xDLFVBQVVDO1lBQ1ZDLG1CQUFtQkM7WUFDbkJDLFVBQVVDO1FBQ1o7UUFDQUMsTUFBTTtZQUNKTixVQUFVTztZQUNWQyxlQUFlQztZQUNmUCxtQkFBbUJRO1lBQ25CQyxlQUFlQztZQUNmUixVQUFVUztZQUNWQyxjQUFjRjtRQUNoQjtJQUNGO0lBRUE7OztHQUdDLEdBQ0QsU0FBU1gsY0FBY2MsS0FBSztRQUMxQixJQUFJLENBQUNoQixLQUFLLENBQ1I7WUFDRWlCLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxPQUFPO1lBQ1BDLE1BQU07Z0JBQ0pDLE9BQU87Z0JBQ1BDLGFBQWE7b0JBQUNDLFdBQVc7d0JBQUM7d0JBQVE7cUJBQWU7Z0JBQUE7Z0JBQ2pEQyxXQUFXO29CQUFDO3dCQUFDUCxNQUFNO3dCQUFRRSxPQUFPO29CQUFFO2lCQUFFO1lBQ3hDO1FBQ0YsR0FDQUg7SUFFSjtJQUVBOzs7R0FHQyxHQUNELFNBQVNaO1FBQ1AsSUFBSSxDQUFDcUIsTUFBTTtJQUNiO0lBRUE7OztHQUdDLEdBQ0QsU0FBU2Q7UUFDUCxNQUFNUyxPQUFPLElBQUksQ0FBQ00sTUFBTTtRQUN4QixNQUFNQyxPQUFPLGlCQUFpQixHQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxNQUFNLEdBQUcsRUFBRTtRQUNuRUYsS0FBS1QsSUFBSSxHQUFHRTtJQUNkO0lBRUE7OztHQUdDLEdBQ0QsU0FBU1Y7UUFDUCxxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUNvQixPQUFPLENBQUMsbUJBQW1CO1FBQ3BDLElBQUksQ0FBQ0wsTUFBTTtRQUNYLElB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RWIsNkVBQTZFO1FBQzdFLHFCQUFxQjtRQUNyQix5RUFBeUU7UUFDekUsNEJBQTRCO1FBQzVCLG1FQUFtRTtRQUNuRSw2RUFBNkU7UUFDN0UsWUFBWTtRQUNaLE1BQU8sRUFBRUEsUUFBUWhCLFFBQVFSLE1BQU0sQ0FBQ2QsTUFBTSxDQUFFO1lBQ3RDLE1BQU11QyxVQUFVakIsUUFBUVIsTUFBTSxDQUFDd0IsTUFBTTtZQUNyQyxNQUFNRSxhQUFhdkUsa0dBQWNBLENBQUNzRTtZQUNsQyxtQ0FBbUMsR0FDbkMsSUFBSUU7WUFFSiw0QkFBNEI7WUFDNUIseUVBQXlFO1lBQ3pFLE1BQU07WUFDTixJQUFJLENBQUNGLFFBQVFyQixPQUFPLEVBQUU7WUFFdEIsTUFBUXVCLFFBQVFELFdBQVdFLElBQUksQ0FBQ3BELE9BQVM7Z0JBQ3ZDLElBQUlxRCxXQUFXRixNQUFNSCxLQUFLO2dCQUUxQiwrREFBK0Q7Z0JBQy9ELElBQ0VoRCxNQUFNc0QsV0FBVyxDQUFDRCxjQUFjLEdBQUcsUUFBUSxPQUMzQ3JELE1BQU1zRCxXQUFXLENBQUNELFdBQVcsT0FBTyxHQUFHLFFBQVEsS0FDL0M7b0JBQ0FBO2dCQUNGO2dCQUVBckQsUUFBUUEsTUFBTXVELEtBQUssQ0FBQyxHQUFHRixZQUFZLE1BQU1yRCxNQUFNdUQsS0FBSyxDQUFDSixNQUFNSCxLQUFLLEdBQUc7WUFDckU7UUFDRjtRQUVBLE9BQU9aLFdBQVdwQyxRQUFRb0M7SUFDNUI7SUFFQTs7R0FFQyxHQUNELFNBQVNiO1FBQ1AsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLW1hdGgvbGliL2luZGV4LmpzPzBmYTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5Db21waWxlQ29udGV4dH0gQ29tcGlsZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkV4dGVuc2lvbn0gRnJvbU1hcmtkb3duRXh0ZW5zaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5IYW5kbGV9IEZyb21NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25FeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5IYW5kbGV9IFRvTWFya2Rvd25IYW5kbGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuTWF0aH0gTWF0aFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5JbmxpbmVNYXRofSBJbmxpbmVNYXRoXG4gKlxuICogQHR5cGVkZWYgVG9PcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbc2luZ2xlRG9sbGFyVGV4dE1hdGg9dHJ1ZV1cbiAqICAgV2hldGhlciB0byBzdXBwb3J0IG1hdGggKHRleHQpIHdpdGggYSBzaW5nbGUgZG9sbGFyLlxuICpcbiAqICAgU2luZ2xlIGRvbGxhcnMgd29yayBpbiBQYW5kb2MgYW5kIG1hbnkgb3RoZXIgcGxhY2VzLCBidXQgb2Z0ZW4gaW50ZXJmZXJlXG4gKiAgIHdpdGgg4oCcbm9ybWFs4oCdIGRvbGxhcnMgaW4gdGV4dC5cbiAqICAgSWYgeW91IHR1cm4gdGhpcyBvZmYsIHlvdSBjYW4gc3RpbGwgdXNlIHR3byBvciBtb3JlIGRvbGxhcnMgZm9yIHRleHQgbWF0aC5cbiAqL1xuXG5pbXBvcnQge2xvbmdlc3RTdHJlYWt9IGZyb20gJ2xvbmdlc3Qtc3RyZWFrJ1xuaW1wb3J0IHtzYWZlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL3NhZmUuanMnXG5pbXBvcnQge3RyYWNrfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL3RyYWNrLmpzJ1xuaW1wb3J0IHtwYXR0ZXJuQ29tcGlsZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9wYXR0ZXJuLWNvbXBpbGUuanMnXG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAuXG4gKlxuICogQHJldHVybnMge0Zyb21NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGhGcm9tTWFya2Rvd24oKSB7XG4gIHJldHVybiB7XG4gICAgZW50ZXI6IHtcbiAgICAgIG1hdGhGbG93OiBlbnRlck1hdGhGbG93LFxuICAgICAgbWF0aEZsb3dGZW5jZU1ldGE6IGVudGVyTWF0aEZsb3dNZXRhLFxuICAgICAgbWF0aFRleHQ6IGVudGVyTWF0aFRleHRcbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgIG1hdGhGbG93OiBleGl0TWF0aEZsb3csXG4gICAgICBtYXRoRmxvd0ZlbmNlOiBleGl0TWF0aEZsb3dGZW5jZSxcbiAgICAgIG1hdGhGbG93RmVuY2VNZXRhOiBleGl0TWF0aEZsb3dNZXRhLFxuICAgICAgbWF0aEZsb3dWYWx1ZTogZXhpdE1hdGhEYXRhLFxuICAgICAgbWF0aFRleHQ6IGV4aXRNYXRoVGV4dCxcbiAgICAgIG1hdGhUZXh0RGF0YTogZXhpdE1hdGhEYXRhXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVudGVyTWF0aEZsb3codG9rZW4pIHtcbiAgICB0aGlzLmVudGVyKFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbWF0aCcsXG4gICAgICAgIG1ldGE6IG51bGwsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhOYW1lOiAnZGl2JyxcbiAgICAgICAgICBoUHJvcGVydGllczoge2NsYXNzTmFtZTogWydtYXRoJywgJ21hdGgtZGlzcGxheSddfSxcbiAgICAgICAgICBoQ2hpbGRyZW46IFt7dHlwZTogJ3RleHQnLCB2YWx1ZTogJyd9XVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW50ZXJNYXRoRmxvd01ldGEoKSB7XG4gICAgdGhpcy5idWZmZXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIGV4aXRNYXRoRmxvd01ldGEoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKClcbiAgICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtNYXRofSAqLyAodGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdKVxuICAgIG5vZGUubWV0YSA9IGRhdGFcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBleGl0TWF0aEZsb3dGZW5jZSgpIHtcbiAgICAvLyBFeGl0IGlmIHRoaXMgaXMgdGhlIGNsb3NpbmcgZmVuY2UuXG4gICAgaWYgKHRoaXMuZ2V0RGF0YSgnbWF0aEZsb3dJbnNpZGUnKSkgcmV0dXJuXG4gICAgdGhpcy5idWZmZXIoKVxuICAgIHRoaXMuc2V0RGF0YSgnbWF0aEZsb3dJbnNpZGUnLCB0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIGV4aXRNYXRoRmxvdyh0b2tlbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpLnJlcGxhY2UoL14oXFxyP1xcbnxcXHIpfChcXHI/XFxufFxccikkL2csICcnKVxuICAgIGNvbnN0IG5vZGUgPSAvKiogQHR5cGUge01hdGh9ICovICh0aGlzLmV4aXQodG9rZW4pKVxuICAgIG5vZGUudmFsdWUgPSBkYXRhXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2UgZGVmaW5lZCBpdC5cbiAgICBub2RlLmRhdGEuaENoaWxkcmVuWzBdLnZhbHVlID0gZGF0YVxuICAgIHRoaXMuc2V0RGF0YSgnbWF0aEZsb3dJbnNpZGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVudGVyTWF0aFRleHQodG9rZW4pIHtcbiAgICB0aGlzLmVudGVyKFxuICAgICAge1xuICAgICAgICB0eXBlOiAnaW5saW5lTWF0aCcsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhOYW1lOiAnc3BhbicsXG4gICAgICAgICAgaFByb3BlcnRpZXM6IHtjbGFzc05hbWU6IFsnbWF0aCcsICdtYXRoLWlubGluZSddfSxcbiAgICAgICAgICBoQ2hpbGRyZW46IFt7dHlwZTogJ3RleHQnLCB2YWx1ZTogJyd9XVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5cbiAgICApXG4gICAgdGhpcy5idWZmZXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIGV4aXRNYXRoVGV4dCh0b2tlbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gICAgY29uc3Qgbm9kZSA9IC8qKiBAdHlwZSB7TWF0aH0gKi8gKHRoaXMuZXhpdCh0b2tlbikpXG4gICAgbm9kZS52YWx1ZSA9IGRhdGFcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB3ZSBkZWZpbmVkIGl0LlxuICAgIG5vZGUuZGF0YS5oQ2hpbGRyZW5bMF0udmFsdWUgPSBkYXRhXG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gZXhpdE1hdGhEYXRhKHRva2VuKSB7XG4gICAgdGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICAgIHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gLlxuICpcbiAqIEBwYXJhbSB7VG9PcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7VG9NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRoVG9NYXJrZG93bihvcHRpb25zKSB7XG4gIGxldCBzaW5nbGUgPSAob3B0aW9ucyB8fCB7fSkuc2luZ2xlRG9sbGFyVGV4dE1hdGhcblxuICBpZiAoc2luZ2xlID09PSBudWxsIHx8IHNpbmdsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc2luZ2xlID0gdHJ1ZVxuICB9XG5cbiAgaW5saW5lTWF0aC5wZWVrID0gaW5saW5lTWF0aFBlZWtcblxuICByZXR1cm4ge1xuICAgIHVuc2FmZTogW1xuICAgICAge2NoYXJhY3RlcjogJ1xccicsIGluQ29uc3RydWN0OiAnbWF0aEZsb3dNZXRhJ30sXG4gICAgICB7Y2hhcmFjdGVyOiAnXFxuJywgaW5Db25zdHJ1Y3Q6ICdtYXRoRmxvd01ldGEnfSxcbiAgICAgIHtcbiAgICAgICAgY2hhcmFjdGVyOiAnJCcsXG4gICAgICAgIGFmdGVyOiBzaW5nbGUgPyB1bmRlZmluZWQgOiAnXFxcXCQnLFxuICAgICAgICBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJ1xuICAgICAgfSxcbiAgICAgIHtjaGFyYWN0ZXI6ICckJywgaW5Db25zdHJ1Y3Q6ICdtYXRoRmxvd01ldGEnfSxcbiAgICAgIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICckJywgYWZ0ZXI6ICdcXFxcJCd9XG4gICAgXSxcbiAgICBoYW5kbGVyczoge21hdGgsIGlubGluZU1hdGh9XG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9XG4gICAqIEBwYXJhbSB7TWF0aH0gbm9kZVxuICAgKi9cbiAgLy8gVG8gZG86IG5leHQgbWFqb3I6IHJlbmFtZSBgY29udGV4dGAgdG8gc3RhdGUsIGBzYWZlT3B0aW9uc2AgdG8gaW5mby5cbiAgLy8gTm90ZTogZml4aW5nIHRoaXMgY29kZT8gUGxlYXNlIGFsc28gZml4IHRoZSBzaW1pbGFyIGNvZGUgZm9yIGNvZGU6XG4gIC8vIDxodHRwczovL2dpdGh1Yi5jb20vc3ludGF4LXRyZWUvbWRhc3QtdXRpbC10by1tYXJrZG93bi9ibG9iL21haW4vbGliL2hhbmRsZS9jb2RlLmpzPlxuICBmdW5jdGlvbiBtYXRoKG5vZGUsIF8sIGNvbnRleHQsIHNhZmVPcHRpb25zKSB7XG4gICAgY29uc3QgcmF3ID0gbm9kZS52YWx1ZSB8fCAnJ1xuICAgIGNvbnN0IHRyYWNrZXIgPSB0cmFjayhzYWZlT3B0aW9ucylcbiAgICBjb25zdCBzZXF1ZW5jZSA9ICckJy5yZXBlYXQoTWF0aC5tYXgobG9uZ2VzdFN0cmVhayhyYXcsICckJykgKyAxLCAyKSlcbiAgICBjb25zdCBleGl0ID0gY29udGV4dC5lbnRlcignbWF0aEZsb3cnKVxuICAgIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZShzZXF1ZW5jZSlcblxuICAgIGlmIChub2RlLm1ldGEpIHtcbiAgICAgIGNvbnN0IHN1YmV4aXQgPSBjb250ZXh0LmVudGVyKCdtYXRoRmxvd01ldGEnKVxuICAgICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgICBzYWZlKGNvbnRleHQsIG5vZGUubWV0YSwge1xuICAgICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgICAgYWZ0ZXI6ICdcXG4nLFxuICAgICAgICAgIGVuY29kZTogWyckJ10sXG4gICAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHN1YmV4aXQoKVxuICAgIH1cblxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnXFxuJylcblxuICAgIGlmIChyYXcpIHtcbiAgICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShyYXcgKyAnXFxuJylcbiAgICB9XG5cbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoc2VxdWVuY2UpXG4gICAgZXhpdCgpXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9XG4gICAqIEBwYXJhbSB7SW5saW5lTWF0aH0gbm9kZVxuICAgKi9cbiAgLy8gTm90ZTogZml4aW5nIHRoaXMgY29kZT8gUGxlYXNlIGFsc28gZml4IHRoZSBzaW1pbGFyIGNvZGUgZm9yIGlubGluZSBjb2RlOlxuICAvLyA8aHR0cHM6Ly9naXRodWIuY29tL3N5bnRheC10cmVlL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vYmxvYi9tYWluL2xpYi9oYW5kbGUvaW5saW5lLWNvZGUuanM+XG4gIC8vXG4gIC8vIFRvIGRvOiBuZXh0IG1ham9yOiByZW5hbWUgYGNvbnRleHRgIHRvIHN0YXRlLlxuICAvLyBUbyBkbzogbmV4dCBtYWpvcjogdXNlIGBzdGF0ZWAgKGBzYWZlYCwgYHRyYWNrYCwgYHBhdHRlcm5Db21waWxlYCkuXG4gIGZ1bmN0aW9uIGlubGluZU1hdGgobm9kZSwgXywgY29udGV4dCkge1xuICAgIGxldCB2YWx1ZSA9IG5vZGUudmFsdWUgfHwgJydcbiAgICBsZXQgc2l6ZSA9IDFcblxuICAgIGlmICghc2luZ2xlKSBzaXplKytcblxuICAgIC8vIElmIHRoZXJlIGlzIGEgc2luZ2xlIGRvbGxhciBzaWduIG9uIGl0cyBvd24gaW4gdGhlIG1hdGgsIHVzZSBhIGZlbmNlIG9mXG4gICAgLy8gdHdvLlxuICAgIC8vIElmIHRoZXJlIGFyZSB0d28gaW4gYSByb3csIHVzZSBvbmUuXG4gICAgd2hpbGUgKFxuICAgICAgbmV3IFJlZ0V4cCgnKF58W14kXSknICsgJ1xcXFwkJy5yZXBlYXQoc2l6ZSkgKyAnKFteJF18JCknKS50ZXN0KHZhbHVlKVxuICAgICkge1xuICAgICAgc2l6ZSsrXG4gICAgfVxuXG4gICAgY29uc3Qgc2VxdWVuY2UgPSAnJCcucmVwZWF0KHNpemUpXG5cbiAgICAvLyBJZiB0aGlzIGlzIG5vdCBqdXN0IHNwYWNlcyBvciBlb2xzICh0YWJzIGRvbuKAmXQgY291bnQpLCBhbmQgZWl0aGVyIHRoZVxuICAgIC8vIGZpcnN0IGFuZCBsYXN0IGNoYXJhY3RlciBhcmUgYSBzcGFjZSBvciBlb2wsIG9yIHRoZSBmaXJzdCBvciBsYXN0XG4gICAgLy8gY2hhcmFjdGVyIGFyZSBkb2xsYXIgc2lnbnMsIHRoZW4gcGFkIHdpdGggc3BhY2VzLlxuICAgIGlmIChcbiAgICAgIC8vIENvbnRhaW5zIG5vbi1zcGFjZS5cbiAgICAgIC9bXiBcXHJcXG5dLy50ZXN0KHZhbHVlKSAmJlxuICAgICAgLy8gU3RhcnRzIHdpdGggc3BhY2UgYW5kIGVuZHMgd2l0aCBzcGFjZS5cbiAgICAgICgoL15bIFxcclxcbl0vLnRlc3QodmFsdWUpICYmIC9bIFxcclxcbl0kLy50ZXN0KHZhbHVlKSkgfHxcbiAgICAgICAgLy8gU3RhcnRzIG9yIGVuZHMgd2l0aCBkb2xsYXIuXG4gICAgICAgIC9eXFwkfFxcJCQvLnRlc3QodmFsdWUpKVxuICAgICkge1xuICAgICAgdmFsdWUgPSAnICcgKyB2YWx1ZSArICcgJ1xuICAgIH1cblxuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICAvLyBXZSBoYXZlIGEgcG90ZW50aWFsIHByb2JsZW06IGNlcnRhaW4gY2hhcmFjdGVycyBhZnRlciBlb2xzIGNvdWxkIHJlc3VsdCBpblxuICAgIC8vIGJsb2NrcyBiZWluZyBzZWVuLlxuICAgIC8vIEZvciBleGFtcGxlLCBpZiBzb21lb25lIGluamVjdGVkIHRoZSBzdHJpbmcgYCdcXG4jIGInYCwgdGhlbiB0aGF0IHdvdWxkXG4gICAgLy8gcmVzdWx0IGluIGFuIEFUWCBoZWFkaW5nLlxuICAgIC8vIFdlIGNhbuKAmXQgZXNjYXBlIGNoYXJhY3RlcnMgaW4gYGlubGluZU1hdGhgLCBidXQgYmVjYXVzZSBlb2xzIGFyZVxuICAgIC8vIHRyYW5zZm9ybWVkIHRvIHNwYWNlcyB3aGVuIGdvaW5nIGZyb20gbWFya2Rvd24gdG8gSFRNTCBhbnl3YXksIHdlIGNhbiBzd2FwXG4gICAgLy8gdGhlbSBvdXQuXG4gICAgd2hpbGUgKCsraW5kZXggPCBjb250ZXh0LnVuc2FmZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHBhdHRlcm4gPSBjb250ZXh0LnVuc2FmZVtpbmRleF1cbiAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwYXR0ZXJuQ29tcGlsZShwYXR0ZXJuKVxuICAgICAgLyoqIEB0eXBlIHtSZWdFeHBFeGVjQXJyYXkgfCBudWxsfSAqL1xuICAgICAgbGV0IG1hdGNoXG5cbiAgICAgIC8vIE9ubHkgbG9vayBmb3IgYGF0QnJlYWtgcy5cbiAgICAgIC8vIEJ0dzogbm90ZSB0aGF0IGBhdEJyZWFrYCBwYXR0ZXJucyB3aWxsIGFsd2F5cyBzdGFydCB0aGUgcmVnZXggYXQgTEYgb3JcbiAgICAgIC8vIENSLlxuICAgICAgaWYgKCFwYXR0ZXJuLmF0QnJlYWspIGNvbnRpbnVlXG5cbiAgICAgIHdoaWxlICgobWF0Y2ggPSBleHByZXNzaW9uLmV4ZWModmFsdWUpKSkge1xuICAgICAgICBsZXQgcG9zaXRpb24gPSBtYXRjaC5pbmRleFxuXG4gICAgICAgIC8vIFN1cHBvcnQgQ1JMRiAocGF0dGVybnMgb25seSBsb29rIGZvciBvbmUgb2YgdGhlIGNoYXJhY3RlcnMpLlxuICAgICAgICBpZiAoXG4gICAgICAgICAgdmFsdWUuY29kZVBvaW50QXQocG9zaXRpb24pID09PSAxMCAvKiBgXFxuYCAqLyAmJlxuICAgICAgICAgIHZhbHVlLmNvZGVQb2ludEF0KHBvc2l0aW9uIC0gMSkgPT09IDEzIC8qIGBcXHJgICovXG4gICAgICAgICkge1xuICAgICAgICAgIHBvc2l0aW9uLS1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgcG9zaXRpb24pICsgJyAnICsgdmFsdWUuc2xpY2UobWF0Y2guaW5kZXggKyAxKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzZXF1ZW5jZSArIHZhbHVlICsgc2VxdWVuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5saW5lTWF0aFBlZWsoKSB7XG4gICAgcmV0dXJuICckJ1xuICB9XG59XG4iXSwibmFtZXMiOlsibG9uZ2VzdFN0cmVhayIsInNhZmUiLCJ0cmFjayIsInBhdHRlcm5Db21waWxlIiwibWF0aEZyb21NYXJrZG93biIsImVudGVyIiwibWF0aEZsb3ciLCJlbnRlck1hdGhGbG93IiwibWF0aEZsb3dGZW5jZU1ldGEiLCJlbnRlck1hdGhGbG93TWV0YSIsIm1hdGhUZXh0IiwiZW50ZXJNYXRoVGV4dCIsImV4aXQiLCJleGl0TWF0aEZsb3ciLCJtYXRoRmxvd0ZlbmNlIiwiZXhpdE1hdGhGbG93RmVuY2UiLCJleGl0TWF0aEZsb3dNZXRhIiwibWF0aEZsb3dWYWx1ZSIsImV4aXRNYXRoRGF0YSIsImV4aXRNYXRoVGV4dCIsIm1hdGhUZXh0RGF0YSIsInRva2VuIiwidHlwZSIsIm1ldGEiLCJ2YWx1ZSIsImRhdGEiLCJoTmFtZSIsImhQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiaENoaWxkcmVuIiwiYnVmZmVyIiwicmVzdW1lIiwibm9kZSIsInN0YWNrIiwibGVuZ3RoIiwiZ2V0RGF0YSIsInNldERhdGEiLCJyZXBsYWNlIiwiY29uZmlnIiwiY2FsbCIsIm1hdGhUb01hcmtkb3duIiwib3B0aW9ucyIsInNpbmdsZSIsInNpbmdsZURvbGxhclRleHRNYXRoIiwidW5kZWZpbmVkIiwiaW5saW5lTWF0aCIsInBlZWsiLCJpbmxpbmVNYXRoUGVlayIsInVuc2FmZSIsImNoYXJhY3RlciIsImluQ29uc3RydWN0IiwiYWZ0ZXIiLCJhdEJyZWFrIiwiaGFuZGxlcnMiLCJtYXRoIiwiXyIsImNvbnRleHQiLCJzYWZlT3B0aW9ucyIsInJhdyIsInRyYWNrZXIiLCJzZXF1ZW5jZSIsInJlcGVhdCIsIk1hdGgiLCJtYXgiLCJtb3ZlIiwic3ViZXhpdCIsImJlZm9yZSIsImVuY29kZSIsImN1cnJlbnQiLCJzaXplIiwiUmVnRXhwIiwidGVzdCIsImluZGV4IiwicGF0dGVybiIsImV4cHJlc3Npb24iLCJtYXRjaCIsImV4ZWMiLCJwb3NpdGlvbiIsImNvZGVQb2ludEF0Iiwic2xpY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/mdast-util-math/lib/index.js\n");
/***/ })
};
;