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.

35 lines
71 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/micromark-extension-gfm-footnote";
exports.ids = ["vendor-chunks/micromark-extension-gfm-footnote"];
exports.modules = {
/***/ "(ssr)/./node_modules/micromark-extension-gfm-footnote/dev/lib/html.js":
/*!***********************************************************************!*\
!*** ./node_modules/micromark-extension-gfm-footnote/dev/lib/html.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 */ gfmFootnoteHtml: () => (/* binding */ gfmFootnoteHtml)\n/* harmony export */ });\n/* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ \"(ssr)/./node_modules/uvu/assert/index.mjs\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/./node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-sanitize-uri */ \"(ssr)/./node_modules/micromark-util-sanitize-uri/dev/index.js\");\n/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').CompileContext} CompileContext\n *\n * @typedef Options\n * @property {string} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute to prevent it from *clobbering*.\n * attributes.\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x)</script>\n * ```\n *\n * Elements by their ID are made available in browsers on the `window` object.\n * Using a prefix prevents this from being a problem.\n * @property {string} [label='Footnotes']\n * Label to use for the footnotes section.\n * Affects screen reader users.\n * Change it if youre authoring in a different language.\n * @property {string} [backLabel='Back to content']\n * Label to use from backreferences back to their footnote call.\n * Affects screen reader users.\n * Change it if youre authoring in a different language.\n */ \n\n\nconst own = {}.hasOwnProperty;\n/**\n * @param {Options} [options={}]\n * @returns {HtmlExtension}\n */ function gfmFootnoteHtml(options = {}) {\n const label = options.label || \"Footnotes\";\n const backLabel = options.backLabel || \"Back to content\";\n const clobberPrefix = options.clobberPrefix === undefined || options.clobberPrefix === null ? \"user-content-\" : options.clobberPrefix;\n return {\n enter: {\n gfmFootnoteDefinition () {\n const stack = /** @type {Array<boolean>} */ this.getData(\"tightStack\");\n stack.push(false);\n },\n gfmFootnoteDefinitionLabelString () {\n this.buffer();\n },\n gfmFootnoteCallString () {\n this.buffer();\n }\n },\n exit: {\n gfmFootnoteDefinition () {\n let definitions = /** @type {Record<string, string>} */ this.getData(\"gfmFootnoteDefinitions\");\n const footnoteStack = /** @type {Array<string>} */ this.getData(\"gfmFootnoteDefinitionStack\");\n const tightStack = /** @type {Array<boolean>} */ this.getData(\"tightStack\");\n const current = footnoteStack.pop();\n const value = this.resume();\n (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(current, \"expected to be in a footnote\");\n if (!definitions) {\n this.setData(\"gfmFootnoteDefinitions\", definitions = {});\n }\n if (!own.call(definitions, current)) definitions[current] = value;\n tightStack.pop();\n this.setData(\"slurpOneLineEnding\", true);\n // “Hack” to prevent a line ending from showing up if were in a definition in\n // an empty list item.\n this.setData(\"lastWasTag\");\n },\n gfmFootnoteDefinitionLabelString (token) {\n let footnoteStack = /** @type {Array<string>} */ this.getData(\"gfmFootnoteDefinitionStack\");\n if (!footnoteStack) {\n this.setData(\"gfmFootnoteDefinitionStack\", footnoteStack = []);\n }\n footnoteStack.push((0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__.normalizeIdentifier)(this.sliceSerialize(token)));\n this.resume() // Drop the label.\n ;\n this.buffer() // Get ready for a value.\n ;\n },\n gfmFootnoteCallString (token) {\n let calls = /** @type {Array<string>|undefined} */ this.getData(\"gfmFootnoteCallOrder\");\n let counts = /** @type {Record<string, number>|undefined} */ this.getData(\"gfmFootnoteCallCounts\");\n const id = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_1__.normalizeIdentifier)(this.sliceSerialize(token));\n /** @type {number} */ let counter;\n this.resume();\n if (!calls) this.setData(\"gfmFootnoteCallOrder\", calls = []);\n if (!counts) this.setData(\"gfmFootnoteCallCounts\", counts = {});\n const index = calls.indexOf(id);\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_2__.sanitizeUri)(id.toLowerCase());\n if (index === -1) {\n calls.push(id);\n counts[id] = 1;\n counter = calls.length;\n } else {\n counts[id]++;\n counter = index + 1;\n }\n const reuseCounter = counts[id];\n this.tag('<sup><a href=\"#' + clobberPrefix + \"fn-\" + safeId + '\" id=\"' + clobberPrefix + \"fnref-\" + safeId + (reuseCounter > 1 ? \"-\" + reuseCounter : \"\") + '\" data-footnote-ref=\"\" aria-describedby=\"footnote-label\">' + String(counter) + \"</a></sup>\");\n },\n null () {\n const calls = /** @type {Array<string>} */ this.getData(\"gfmFootnoteCallOrder\") || [];\n const counts = /** @type {Record<string, number>} */ this.getData(\"gfmFootnoteCallCounts\") || {};\n const definitions = /** @type {Record<string, string>} */ this.getData(\"gfmFootnoteDefinitions\") || {};\n let index = -1;\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag('<section data-footnotes=\"\" class=\"footnotes\"><h2 id=\"footnote-label\" class=\"sr-only\">');\n this.raw(this.encode(label));\n this.tag(\"</h2>\");\n this.lineEndingIfNeeded();\n this.tag(\"<ol>\");\n }\n while(++index < calls.length){\n // Called definitions are always defined.\n const id = calls[index];\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_2__.sanitizeUri)(id.toLowerCase());\n let referenceIndex = 0;\n /** @type {Array<string>} */ const references = [];\n while(++referenceIndex <= counts[id]){\n references.push('<a href=\"#' + clobberPrefix + \"fnref-\" + safeId + (referenceIndex > 1 ? \"-\" + referenceIndex : \"\") + '\" data-footnote-backref=\"\" class=\"data-footnote-backref\" aria-label=\"' + this.encode(backLabel) + '\">↩' + (referenceIndex > 1 ? \"<sup>\" + referenceIndex + \"</sup>\" : \"\") + \"</a>\");\n }\n const reference = references.join(\" \");\n let injected = false;\n this.lineEndingIfNeeded();\n this.tag('<li id=\"' + clobberPrefix + \"fn-\" + safeId + '\">');\n this.lineEndingIfNeeded();\n this.tag(definitions[id].replace(/<\\/p>(?:\\r?\\n|\\r)?$/, (/** @type {string} */ $0)=>{\n injected = true;\n return \" \" + reference + $0;\n }));\n if (!injected) {\n this.lineEndingIfNeeded();\n this.tag(reference);\n }\n this.lineEndingIfNeeded();\n this.tag(\"</li>\");\n }\n if (calls.length > 0) {\n this.lineEndingIfNeeded();\n this.tag(\"</ol>\");\n this.lineEndingIfNeeded();\n this.tag(\"</section>\");\n }\n }\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUvZGV2L2xpYi9odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXlCQyxHQUVzQztBQUNnQztBQUNoQjtBQUV2RCxNQUFNSSxNQUFNLENBQUMsRUFBRUMsY0FBYztBQUU3Qjs7O0NBR0MsR0FDTSxTQUFTQyxnQkFBZ0JDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLE1BQU1DLFFBQVFELFFBQVFDLEtBQUssSUFBSTtJQUMvQixNQUFNQyxZQUFZRixRQUFRRSxTQUFTLElBQUk7SUFDdkMsTUFBTUMsZ0JBQ0pILFFBQVFHLGFBQWEsS0FBS0MsYUFBYUosUUFBUUcsYUFBYSxLQUFLLE9BQzdELGtCQUNBSCxRQUFRRyxhQUFhO0lBQzNCLE9BQU87UUFDTEUsT0FBTztZQUNMQztnQkFDRSxNQUFNQyxRQUFRLDJCQUEyQixHQUFJLElBQUksQ0FBQ0MsT0FBTyxDQUFDO2dCQUMxREQsTUFBTUUsSUFBSSxDQUFDO1lBQ2I7WUFDQUM7Z0JBQ0UsSUFBSSxDQUFDQyxNQUFNO1lBQ2I7WUFDQUM7Z0JBQ0UsSUFBSSxDQUFDRCxNQUFNO1lBQ2I7UUFDRjtRQUNBRSxNQUFNO1lBQ0pQO2dCQUNFLElBQUlRLGNBQWMsbUNBQW1DLEdBQ25ELElBQUksQ0FBQ04sT0FBTyxDQUFDO2dCQUVmLE1BQU1PLGdCQUFnQiwwQkFBMEIsR0FDOUMsSUFBSSxDQUFDUCxPQUFPLENBQUM7Z0JBRWYsTUFBTVEsYUFBYSwyQkFBMkIsR0FDNUMsSUFBSSxDQUFDUixPQUFPLENBQUM7Z0JBRWYsTUFBTVMsVUFBVUYsY0FBY0csR0FBRztnQkFDakMsTUFBTUMsUUFBUSxJQUFJLENBQUNDLE1BQU07Z0JBRXpCMUIsOENBQU1BLENBQUN1QixTQUFTO2dCQUVoQixJQUFJLENBQUNILGFBQWE7b0JBQ2hCLElBQUksQ0FBQ08sT0FBTyxDQUFDLDBCQUEyQlAsY0FBYyxD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O1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUvZGV2L2xpYi9odG1sLmpzPzAyMjUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLkh0bWxFeHRlbnNpb259IEh0bWxFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjbG9iYmVyUHJlZml4PSd1c2VyLWNvbnRlbnQtJ11cbiAqICAgUHJlZml4IHRvIHVzZSBiZWZvcmUgdGhlIGBpZGAgYXR0cmlidXRlIHRvIHByZXZlbnQgaXQgZnJvbSAqY2xvYmJlcmluZyouXG4gKiAgIGF0dHJpYnV0ZXMuXG4gKiAgIERPTSBjbG9iYmVyaW5nIGlzIHRoaXM6XG4gKlxuICogICBgYGBodG1sXG4gKiAgIDxwIGlkPXg+PC9wPlxuICogICA8c2NyaXB0PmFsZXJ0KHgpPC9zY3JpcHQ+XG4gKiAgIGBgYFxuICpcbiAqICAgRWxlbWVudHMgYnkgdGhlaXIgSUQgYXJlIG1hZGUgYXZhaWxhYmxlIGluIGJyb3dzZXJzIG9uIHRoZSBgd2luZG93YCBvYmplY3QuXG4gKiAgIFVzaW5nIGEgcHJlZml4IHByZXZlbnRzIHRoaXMgZnJvbSBiZWluZyBhIHByb2JsZW0uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2xhYmVsPSdGb290bm90ZXMnXVxuICogICBMYWJlbCB0byB1c2UgZm9yIHRoZSBmb290bm90ZXMgc2VjdGlvbi5cbiAqICAgQWZmZWN0cyBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuICogICBDaGFuZ2UgaXQgaWYgeW914oCZcmUgYXV0aG9yaW5nIGluIGEgZGlmZmVyZW50IGxhbmd1YWdlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtiYWNrTGFiZWw9J0JhY2sgdG8gY29udGVudCddXG4gKiAgIExhYmVsIHRvIHVzZSBmcm9tIGJhY2tyZWZlcmVuY2VzIGJhY2sgdG8gdGhlaXIgZm9vdG5vdGUgY2FsbC5cbiAqICAgQWZmZWN0cyBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuICogICBDaGFuZ2UgaXQgaWYgeW914oCZcmUgYXV0aG9yaW5nIGluIGEgZGlmZmVyZW50IGxhbmd1YWdlLlxuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICd1dnUvYXNzZXJ0J1xuaW1wb3J0IHtub3JtYWxpemVJZGVudGlmaWVyfSBmcm9tICdtaWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllcidcbmltcG9ydCB7c2FuaXRpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zPXt9XVxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1Gb290bm90ZUh0bWwob3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGxhYmVsID0gb3B0aW9ucy5sYWJlbCB8fCAnRm9vdG5vdGVzJ1xuICBjb25zdCBiYWNrTGFiZWwgPSBvcHRpb25zLmJhY2tMYWJlbCB8fCAnQmFjayB0byBjb250ZW50J1xuICBjb25zdCBjbG9iYmVyUHJlZml4ID1cbiAgICBvcHRpb25zLmNsb2JiZXJQcmVmaXggPT09IHVuZGVmaW5lZCB8fCBvcHRpb25zLmNsb2JiZXJQcmVmaXggPT09IG51bGxcbiAgICAgID8gJ3VzZXItY29udGVudC0nXG4gICAgICA6IG9wdGlvbnMuY2xvYmJlclByZWZpeFxuICByZXR1cm4ge1xuICAgIGVudGVyOiB7XG4gICAgICBnZm1Gb290bm90ZURlZmluaXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gLyoqIEB0eXBlIHtBcnJheTxib29sZWFuPn0gKi8gKHRoaXMuZ2V0RGF0YSgndGlnaHRTdGFjaycpKVxuICAgICAgICBzdGFjay5wdXNoKGZhbHNlKVxuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKCkge1xuICAgICAgICB0aGlzLmJ1ZmZlcigpXG4gICAgICB9LFxuICAgICAgZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCkge1xuICAgICAgICB0aGlzLmJ1ZmZlcigpXG4gICAgICB9XG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBnZm1Gb290bm90ZURlZmluaXRpb24oKSB7XG4gICAgICAgIGxldCBkZWZpbml0aW9ucyA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi8gKFxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucycpXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgZm9vdG5vdGVTdGFjayA9IC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi8gKFxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2snKVxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHRpZ2h0U3RhY2sgPSAvKiogQHR5cGUge0FycmF5PGJvb2xlYW4+fSAqLyAoXG4gICAgICAgICAgdGhpcy5nZXREYXRhKCd0aWdodFN0YWNrJylcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBjdXJyZW50ID0gZm9vdG5vdGVTdGFjay5wb3AoKVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmVzdW1lKClcblxuICAgICAgICBhc3NlcnQoY3VycmVudCwgJ2V4cGVjdGVkIHRvIGJlIGluIGEgZm9vdG5vdGUnKVxuXG4gICAgICAgIGlmICghZGVmaW5pdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLnNldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbnMnLCAoZGVmaW5pdGlvbnMgPSB7fSkpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW93bi5jYWxsKGRlZmluaXRpb25zLCBjdXJyZW50KSkgZGVmaW5pdGlvbnNbY3VycmVudF0gPSB2YWx1ZVxuXG4gICAgICAgIHRpZ2h0U3RhY2sucG9wKClcbiAgICAgICAgdGhpcy5zZXREYXRhKCdzbHVycE9uZUxpbmVFbmRpbmcnLCB0cnVlKVxuICAgICAgICAvLyDigJxIYWNr4oCdIHRvIHByZXZlbnQgYSBsaW5lIGVuZGluZyBmcm9tIHNob3dpbmcgdXAgaWYgd2XigJlyZSBpbiBhIGRlZmluaXRpb24gaW5cbiAgICAgICAgLy8gYW4gZW1wdHkgbGlzdCBpdGVtLlxuICAgICAgICB0aGlzLnNldERhdGEoJ2xhc3RXYXNUYWcnKVxuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKHRva2VuKSB7XG4gICAgICAgIGxldCBmb290bm90ZVN0YWNrID0gLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqLyAoXG4gICAgICAgICAgdGhpcy5nZXREYXRhKCdnZm1Gb290bm90ZURlZmluaXRpb25TdGFjaycpXG4gICAgICAgIClcblxuICAgICAgICBpZiAoIWZvb3Rub3RlU3RhY2spIHtcbiAgICAgICAgICB0aGlzLnNldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrJywgKGZvb3Rub3RlU3RhY2sgPSBbXSkpXG4gICAgICAgIH1cblxuICAgICAgICBmb290bm90ZVN0YWNrLnB1c2gobm9ybWFsaXplSWRlbnRpZmllcih0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKSkpXG4gICAgICAgIHRoaXMucmVzdW1lKCkgLy8gRHJvcCB0aGUgbGFiZWwuXG4gICAgICAgIHRoaXMuYnVmZmVyKCkgLy8gR2V0IHJlYWR5IGZvciBhIHZhbHVlLlxuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbFN0cmluZyh0b2tlbikge1xuICAgICAgICBsZXQgY2FsbHMgPSAvKiogQHR5cGUge0FycmF5PHN0cmluZz58dW5kZWZpbmVkfSAqLyAoXG4gICAgICAgICAgdGhpcy5nZXREYXRhKCdnZm1Gb290bm90ZUNhbGxPcmRlcicpXG4gICAgICAgIClcbiAgICAgICAgbGV0IGNvdW50cyA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgbnVtYmVyPnx1bmRlZmluZWR9ICovIChcbiAgICAgICAgICB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbENvdW50cycpXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgaWQgPSBub3JtYWxpemVJZGVudGlmaWVyKHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pKVxuICAgICAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAgICAgbGV0IGNvdW50ZXJcblxuICAgICAgICB0aGlzLnJlc3VtZSgpXG5cbiAgICAgICAgaWYgKCFjYWxscykgdGhpcy5zZXREYXRhKCdnZm1Gb290bm90ZUNhbGxPcmRlcicsIChjYWxscyA9IFtdKSlcbiAgICAgICAgaWYgKCFjb3VudHMpIHRoaXMuc2V0RGF0YSgnZ2ZtRm9vdG5vdGVDYWxsQ291bnRzJywgKGNvdW50cyA9IHt9KSlcblxuICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxzLmluZGV4T2YoaWQpXG4gICAgICAgIGNvbnN0IHNhZmVJZCA9IHNhbml0aXplVXJpKGlkLnRvTG93ZXJDYXNlKCkpXG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgIGNhbGxzLnB1c2goaWQpXG4gICAgICAgICAgY291bnRzW2lkXSA9IDFcbiAgICAgICAgICBjb3VudGVyID0gY2FsbHMubGVuZ3RoXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY291bnRzW2lkXSsrXG4gICAgICAgICAgY291bnRlciA9IGluZGV4ICsgMVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmV1c2VDb3VudGVyID0gY291bnRzW2lkXVxuXG4gICAgICAgIHRoaXMudGFnKFxuICAgICAgICAgICc8c3VwPjxhIGhyZWY9XCIjJyArXG4gICAgICAgICAgICBjbG9iYmVyUHJlZml4ICtcbiAgICAgICAgICAgICdmbi0nICtcbiAgICAgICAgICAgIHNhZmVJZCArXG4gICAgICAgICAgICAnXCIgaWQ9XCInICtcbiAgICAgICAgICAgIGNsb2JiZXJQcmVmaXggK1xuICAgICAgICAgICAgJ2ZucmVmLScgK1xuICAgICAgICAgICAgc2FmZUlkICtcbiAgICAgICAgICAgIChyZXVzZUNvdW50ZXIgPiAxID8gJy0nICsgcmV1c2VDb3VudGVyIDogJycpICtcbiAgICAgICAgICAgICdcIiBkYXRhLWZvb3Rub3RlLXJlZj1cIlwiIGFyaWEtZGVzY3JpYmVkYnk9XCJmb290bm90ZS1sYWJlbFwiPicgK1xuICAgICAgICAgICAgU3RyaW5nKGNvdW50ZXIpICtcbiAgICAgICAgICAgICc8L2E+PC9zdXA+J1xuICAgICAgICApXG4gICAgICB9LFxuICAgICAgbnVsbCgpIHtcbiAgICAgICAgY29uc3QgY2FsbHMgPSAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovIChcbiAgICAgICAgICB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbE9yZGVyJykgfHwgW11cbiAgICAgICAgKVxuICAgICAgICBjb25zdCBjb3VudHMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIG51bWJlcj59ICovIChcbiAgICAgICAgICB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbENvdW50cycpIHx8IHt9XG4gICAgICAgIClcbiAgICAgICAgY29uc3QgZGVmaW5pdGlvbnMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovIChcbiAgICAgICAgICB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbnMnKSB8fCB7fVxuICAgICAgICApXG4gICAgICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICAgICAgaWYgKGNhbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoXG4gICAgICAgICAgICAnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9XCJcIiBjbGFzcz1cImZvb3Rub3Rlc1wiPjxoMiBpZD1cImZvb3Rub3RlLWxhYmVsXCIgY2xhc3M9XCJzci1vbmx5XCI+J1xuICAgICAgICAgIClcbiAgICAgICAgICB0aGlzLnJhdyh0aGlzLmVuY29kZShsYWJlbCkpXG4gICAgICAgICAgdGhpcy50YWcoJzwvaDI+JylcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgdGhpcy50YWcoJzxvbD4nKVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBjYWxscy5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBDYWxsZWQgZGVmaW5pdGlvbnMgYXJlIGFsd2F5cyBkZWZpbmVkLlxuICAgICAgICAgIGNvbnN0IGlkID0gY2FsbHNbaW5kZXhdXG4gICAgICAgICAgY29uc3Qgc2FmZUlkID0gc2FuaXRpemVVcmkoaWQudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICBsZXQgcmVmZXJlbmNlSW5kZXggPSAwXG4gICAgICAgICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSBbXVxuXG4gICAgICAgICAgd2hpbGUgKCsrcmVmZXJlbmNlSW5kZXggPD0gY291bnRzW2lkXSkge1xuICAgICAgICAgICAgcmVmZXJlbmNlcy5wdXNoKFxuICAgICAgICAgICAgICAnPGEgaHJlZj1cIiMnICtcbiAgICAgICAgICAgICAgICBjbG9iYmVyUHJlZml4ICtcbiAgICAgICAgICAgICAgICAnZm5yZWYtJyArXG4gICAgICAgICAgICAgICAgc2FmZUlkICtcbiAgICAgICAgICAgICAgICAocmVmZXJlbmNlSW5kZXggPiAxID8gJy0nICsgcmVmZXJlbmNlSW5kZXggOiAnJykgK1xuICAgICAgICAgICAgICAgICdcIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9XCJcIiBjbGFzcz1cImRhdGEtZm9vdG5vdGUtYmFja3JlZlwiIGFyaWEtbGFiZWw9XCInICtcbiAgICAgICAgICAgICAgICB0aGlzLmVuY29kZShiYWNrTGFiZWwpICtcbiAgICAgICAgICAgICAgICAnXCI+4oapJyArXG4gICAgICAgICAgICAgICAgKHJlZmVyZW5jZUluZGV4ID4gMVxuICAgICAgICAgICAgICAgICAgPyAnPHN1cD4nICsgcmVmZXJlbmNlSW5kZXggKyAnPC9zdXA+J1xuICAgICAgICAgICAgICAgICAgOiAnJykgK1xuICAgICAgICAgICAgICAgICc8L2E+J1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHJlZmVyZW5jZXMuam9pbignICcpXG4gICAgICAgICAgbGV0IGluamVjdGVkID0gZmFsc2VcblxuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICB0aGlzLnRhZygnPGxpIGlkPVwiJyArIGNsb2JiZXJQcmVmaXggKyAnZm4tJyArIHNhZmVJZCArICdcIj4nKVxuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICB0aGlzLnRhZyhcbiAgICAgICAgICAgIGRlZmluaXRpb25zW2lkXS5yZXBsYWNlKFxuICAgICAgICAgICAgICAvPFxcL3A+KD86XFxyP1xcbnxcXHIpPyQvLFxuICAgICAgICAgICAgICAoLyoqIEB0eXBlIHtzdHJpbmd9ICovICQwKSA9PiB7XG4gICAgICAgICAgICAgICAgaW5qZWN0ZWQgPSB0cnVlXG4gICAgICAgICAgICAgICAgcmV0dXJuICcgJyArIHJlZmVyZW5jZSArICQwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG5cbiAgICAgICAgICBpZiAoIWluamVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpXG4gICAgICAgICAgICB0aGlzLnRhZyhyZWZlcmVuY2UpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKVxuICAgICAgICAgIHRoaXMudGFnKCc8L2xpPicpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2FsbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICB0aGlzLnRhZygnPC9vbD4nKVxuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKClcbiAgICAgICAgICB0aGlzLnRhZygnPC9zZWN0aW9uPicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJvayIsImFzc2VydCIsIm5vcm1hbGl6ZUlkZW50aWZpZXIiLCJzYW5pdGl6ZVVyaSIsIm93biIsImhhc093blByb3BlcnR5IiwiZ2ZtRm9vdG5vdGVIdG1sIiwib3B0aW9ucyIsImxhYmVsIiwiYmFja0xhYmVsIiwiY2xvYmJlclByZWZpeCIsInVuZGVmaW5lZCIsImVudGVyIiwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIiwic3RhY2siLCJnZXREYXRhIiwicHVzaCIsImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwiYnVmZmVyIiwiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIiwiZXhpdCIsImRlZmluaXRpb25zIiwiZm9vdG5vdGVTdGFjayIsInRpZ2h0U3RhY2siLCJjdXJyZW50IiwicG9wIiwidmFsdWUiLCJyZXN1bWUiLCJzZXREYXRhIiwiY2FsbCIsInRva2VuIiwic2xpY2VTZXJpYWxpemUiLCJjYWxscyIsImNvdW50cyIsImlkIiwiY291bnRlciIsImluZGV4IiwiaW5kZXhPZiIsInNhZmVJZCIsInRvTG93ZXJDYXNlIiwibGVuZ3RoIiwicmV1c2VDb3VudGVyIiwidGFnIiwiU3RyaW5nIiwibnVsbCIsImxpbmVFbmRpbmdJZk5lZWRlZCIsInJhdyIsImVuY29kZSIsInJlZmVyZW5jZUluZGV4IiwicmVmZXJlbmNlcyIsInJlZmVyZW5jZSIsImpvaW4iLCJpbmplY3RlZCIsInJlcGxhY2UiLCIkMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/micromark-extension-gfm-footnote/dev/lib/html.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js":
/*!*************************************************************************!*\
!*** ./node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.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 */ gfmFootnote: () => (/* binding */ gfmFootnote)\n/* harmony export */ });\n/* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ \"(ssr)/./node_modules/uvu/assert/index.mjs\");\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-core-commonmark */ \"(ssr)/./node_modules/micromark-core-commonmark/dev/lib/blank-line.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ \"(ssr)/./node_modules/micromark-factory-space/dev/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"(ssr)/./node_modules/micromark-util-character/dev/index.js\");\n/* harmony import */ var micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol/codes.js */ \"(ssr)/./node_modules/micromark-util-symbol/codes.js\");\n/* harmony import */ var micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol/constants.js */ \"(ssr)/./node_modules/micromark-util-symbol/constants.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"(ssr)/./node_modules/micromark-util-normalize-identifier/dev/index.js\");\n/* harmony import */ var micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol/types.js */ \"(ssr)/./node_modules/micromark-util-symbol/types.js\");\n/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n */ \n\n\n\n\n\n\n\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n/**\n * @returns {Extension}\n */ function gfmFootnote() {\n /** @type {Extension} */ return {\n document: {\n [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n/** @type {Tokenizer} */ function tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Array<string>} */ // @ts-expect-error Its fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */ let labelStart;\n // Find an opening.\n while(index--){\n const token = self.events[index][1];\n if (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.labelImage) {\n labelStart = token;\n break;\n }\n // Exit if weve walked far enough.\n if (token.type === \"gfmFootnoteCall\" || token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.labelLink || token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.label || token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.image || token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.link) {\n break;\n }\n }\n return start;\n /** @type {State} */ function start(code) {\n (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket, \"expected `]`\");\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__.normalizeIdentifier)(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.charCodeAt(0) !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok(code);\n }\n}\n/** @type {Resolver} */ function resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token|undefined} */ let labelStart;\n // Find an opening.\n while(index--){\n if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.labelImage && events[index][0] === \"enter\") {\n labelStart = events[index][1];\n break;\n }\n }\n (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(labelStart, \"expected `labelStart` to resolve\");\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data;\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n // The whole (without `!`):\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString,\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n /** @type {Array<Event>} */ const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\n \"enter\",\n call,\n context\n ],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\n \"enter\",\n marker,\n context\n ],\n [\n \"exit\",\n marker,\n context\n ],\n // Everything in between.\n [\n \"enter\",\n string,\n context\n ],\n [\n \"enter\",\n chunk,\n context\n ],\n [\n \"exit\",\n chunk,\n context\n ],\n [\n \"exit\",\n string,\n context\n ],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\n \"exit\",\n call,\n context\n ]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n/** @type {Tokenizer} */ function tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n /** @type {Array<string>} */ // @ts-expect-error Its fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */ let data;\n return start;\n /** @type {State} */ function start(code) {\n (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, \"expected `[`\");\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n /** @type {State} */ function callStart(code) {\n if (code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret) return nok(code);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n /** @type {State} */ function callData(code) {\n /** @type {Token} */ let token;\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || size++ > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.linkReferenceSizeMax) {\n return nok(code);\n }\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n if (!data) {\n return nok(code);\n }\n effects.exit(\"chunkString\");\n token = effects.exit(\"gfmFootnoteCallString\");\n return defined.includes((0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__.normalizeIdentifier)(self.sliceSerialize(token))) ? end(code) : nok(code);\n }\n effects.consume(code);\n if (!(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n data = true;\n }\n return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? callEscape : callData;\n }\n /** @type {State} */ function callEscape(code) {\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n /** @type {State} */ function end(code) {\n (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket, \"expected `]`\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok;\n }\n}\n/** @type {Tokenizer} */ function tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n /** @type {Array<string>} */ // @ts-expect-error Its fine!\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */ let identifier;\n let size = 0;\n /** @type {boolean|undefined} */ let data;\n return start;\n /** @type {State} */ function start(code) {\n (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, \"expected `[`\");\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelStart;\n }\n /** @type {State} */ function labelStart(code) {\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n return atBreak;\n }\n return nok(code);\n }\n /** @type {State} */ function atBreak(code) {\n /** @type {Token} */ let token;\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || size > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.linkReferenceSizeMax) {\n return nok(code);\n }\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n if (!data) {\n return nok(code);\n }\n token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_3__.normalizeIdentifier)(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n size++;\n return atBreak;\n }\n effects.enter(\"chunkString\").contentType = \"string\";\n return label(code);\n }\n /** @type {State} */ function label(code) {\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code) || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket || size > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.linkReferenceSizeMax) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n if (!(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? labelEscape : label;\n }\n /** @type {State} */ function labelEscape(code) {\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {\n effects.consume(code);\n size++;\n return label;\n }\n return label(code);\n }\n /** @type {State} */ function labelAfter(code) {\n if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, done, \"gfmFootnoteDefinitionWhitespace\");\n }\n return nok(code);\n }\n /** @type {State} */ function done(code) {\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return ok(code);\n }\n}\n/** @type {Tokenizer} */ function tokenizeDefinitionContinuation(effects, ok, nok) {\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.blankLine, ok, effects.attempt(indent, ok, nok));\n}\n/** @type {Exiter} */ function gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\n/** @type {Tokenizer} */ function tokenizeIndent(effects, ok, nok) {\n const self = this;\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, afterPrefix, \"gfmFootnoteDefinitionIndent\", micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1);\n /** @type {State} */ function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize ? ok(code) : nok(code);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUvZGV2L2xpYi9zeW50YXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FFc0M7QUFDWTtBQUNDO0FBSW5CO0FBQ21CO0FBQ1E7QUFDVztBQUNuQjtBQUVwRCxNQUFNVSxTQUFTO0lBQUNDLFVBQVVDO0lBQWdCQyxTQUFTO0FBQUk7QUFFdkQ7O0NBRUMsR0FDTSxTQUFTQztJQUNkLHNCQUFzQixHQUN0QixPQUFPO1FBQ0xDLFVBQVU7WUFDUixDQUFDVCxpRUFBS0EsQ0FBQ1UsaUJBQWlCLENBQUMsRUFBRTtnQkFDekJMLFVBQVVNO2dCQUNWQyxjQUFjO29CQUFDUCxVQUFVUTtnQkFBOEI7Z0JBQ3ZEQyxNQUFNQztZQUNSO1FBQ0Y7UUFDQUMsTUFBTTtZQUNKLENBQUNoQixpRUFBS0EsQ0FBQ1UsaUJBQWlCLENBQUMsRUFBRTtnQkFBQ0wsVUFBVVk7WUFBdUI7WUFDN0QsQ0FBQ2pCLGlFQUFLQSxDQUFDa0Isa0JBQWtCLENBQUMsRUFBRTtnQkFDMUJDLEtBQUs7Z0JBQ0xkLFVBQVVlO2dCQUNWQyxXQUFXQztZQUNiO1FBQ0Y7SUFDRjtBQUNGO0FBRUEsc0JBQXNCLEdBQ3RCLFNBQVNGLGlDQUFpQ0csT0FBTyxFQUFFN0IsRUFBRSxFQUFFOEIsR0FBRztJQUN4RCxNQUFNQyxPQUFPLElBQUk7SUFDakIsSUFBSUMsUUFBUUQsS0FBS0UsTUFBTSxDQUFDQyxNQUFNO0lBQzlCLDBCQUEwQixHQUMxQiw4QkFBOEI7SUFDOUIsTUFBTUMsVUFBVUosS0FBS0ssTUFBTSxDQUFDQyxZQUFZLElBQUtOLENBQUFBLEtBQUtLLE1BQU0sQ0FBQ0MsWUFBWSxHQUFHLEVBQUU7SUFDMUUsa0JBQWtCLEdBQ2xCLElBQUlDO0lBRUosbUJBQW1CO0lBQ25CLE1BQU9OLFFBQVM7UUFDZCxNQUFNTyxRQUFRUixLQUFLRSxNQUFNLENBQUNELE1BQU0sQ0FBQyxF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QUc7SUFDdEMsTUFBTUMsT0FBTyxJQUFJO0lBRWpCLE9BQU81QixxRUFBWUEsQ0FDakIwQixTQUNBOEQsYUFDQSwrQkFDQXBGLHlFQUFTQSxDQUFDcUYsT0FBTyxHQUFHO0lBR3RCLGtCQUFrQixHQUNsQixTQUFTRCxZQUFZNUMsSUFBSTtRQUN2QixNQUFNOEMsT0FBTzlELEtBQUtFLE1BQU0sQ0FBQ0YsS0FBS0UsTUFBTSxDQUFDQyxNQUFNLEdBQUcsRUFBRTtRQUNoRCxPQUFPMkQsUUFDTEEsSUFBSSxDQUFDLEVBQUUsQ0FBQ3JELElBQUksS0FBSyxpQ0FDakJxRCxJQUFJLENBQUMsRUFBRSxDQUFDM0MsY0FBYyxDQUFDMkMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNM0QsTUFBTSxLQUFLM0IseUVBQVNBLENBQUNxRixPQUFPLEdBQ2hFNUYsR0FBRytDLFFBQ0hqQixJQUFJaUI7SUFDVjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUvZGV2L2xpYi9zeW50YXguanM/ZjIxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuUmVzb2x2ZXJ9IFJlc29sdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VufSBUb2tlblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbml6ZXJ9IFRva2VuaXplclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5FeGl0ZXJ9IEV4aXRlclxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXZlbnR9IEV2ZW50XG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ3V2dS9hc3NlcnQnXG5pbXBvcnQge2JsYW5rTGluZX0gZnJvbSAnbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyaydcbmltcG9ydCB7ZmFjdG9yeVNwYWNlfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSdcbmltcG9ydCB7XG4gIG1hcmtkb3duTGluZUVuZGluZyxcbiAgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZVxufSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInXG5pbXBvcnQge2NvZGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wvY29kZXMuanMnXG5pbXBvcnQge2NvbnN0YW50c30gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3ltYm9sL2NvbnN0YW50cy5qcydcbmltcG9ydCB7bm9ybWFsaXplSWRlbnRpZmllcn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtbm9ybWFsaXplLWlkZW50aWZpZXInXG5pbXBvcnQge3R5cGVzfSBmcm9tICdtaWNyb21hcmstdXRpbC1zeW1ib2wvdHlwZXMuanMnXG5cbmNvbnN0IGluZGVudCA9IHt0b2tlbml6ZTogdG9rZW5pemVJbmRlbnQsIHBhcnRpYWw6IHRydWV9XG5cbi8qKlxuICogQHJldHVybnMge0V4dGVuc2lvbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUZvb3Rub3RlKCkge1xuICAvKiogQHR5cGUge0V4dGVuc2lvbn0gKi9cbiAgcmV0dXJuIHtcbiAgICBkb2N1bWVudDoge1xuICAgICAgW2NvZGVzLmxlZnRTcXVhcmVCcmFja2V0XToge1xuICAgICAgICB0b2tlbml6ZTogdG9rZW5pemVEZWZpbml0aW9uU3RhcnQsXG4gICAgICAgIGNvbnRpbnVhdGlvbjoge3Rva2VuaXplOiB0b2tlbml6ZURlZmluaXRpb25Db250aW51YXRpb259LFxuICAgICAgICBleGl0OiBnZm1Gb290bm90ZURlZmluaXRpb25FbmRcbiAgICAgIH1cbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgIFtjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldF06IHt0b2tlbml6ZTogdG9rZW5pemVHZm1Gb290bm90ZUNhbGx9LFxuICAgICAgW2NvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldF06IHtcbiAgICAgICAgYWRkOiAnYWZ0ZXInLFxuICAgICAgICB0b2tlbml6ZTogdG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwsXG4gICAgICAgIHJlc29sdmVUbzogcmVzb2x2ZVRvUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKiBAdHlwZSB7VG9rZW5pemVyfSAqL1xuZnVuY3Rpb24gdG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICBsZXQgaW5kZXggPSBzZWxmLmV2ZW50cy5sZW5ndGhcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIEl04oCZcyBmaW5lIVxuICBjb25zdCBkZWZpbmVkID0gc2VsZi5wYXJzZXIuZ2ZtRm9vdG5vdGVzIHx8IChzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgPSBbXSlcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGxhYmVsU3RhcnRcblxuICAvLyBGaW5kIGFuIG9wZW5pbmcuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgY29uc3QgdG9rZW4gPSBzZWxmLmV2ZW50c1tpbmRleF1bMV1cblxuICAgIGlmICh0b2tlbi50eXBlID09PSB0eXBlcy5sYWJlbEltYWdlKSB7XG4gICAgICBsYWJlbFN0YXJ0ID0gdG9rZW5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgLy8gRXhpdCBpZiB3ZeKAmXZlIHdhbGtlZCBmYXIgZW5vdWdoLlxuICAgIGlmIChcbiAgICAgIHRva2VuLnR5cGUgPT09ICdnZm1Gb290bm90ZUNhbGwnIHx8XG4gICAgICB0b2tlbi50eXBlID09PSB0eXBlcy5sYWJlbExpbmsgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09IHR5cGVzLmxhYmVsIHx8XG4gICAgICB0b2tlbi50eXBlID09PSB0eXBlcy5pbWFnZSB8fFxuICAgICAgdG9rZW4udHlwZSA9PT0gdHlwZXMubGlua1xuICAgICkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhcnRcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCwgJ2V4cGVjdGVkIGBdYCcpXG5cbiAgICBpZiAoIWxhYmVsU3RhcnQgfHwgIWxhYmVsU3RhcnQuX2JhbGFuY2VkKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSBub3JtYWxpemVJZGVudGlmaWVyKFxuICAgICAgc2VsZi5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6IGxhYmVsU3RhcnQuZW5kLCBlbmQ6IHNlbGYubm93KCl9KVxuICAgIClcblxuICAgIGlmIChpZC5jaGFyQ29kZUF0KDApICE9PSBjb2Rlcy5jYXJldCB8fCAhZGVmaW5lZC5pbmNsdWRlcyhpZC5zbGljZSgxKSkpIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVUb1BvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbChldmVudHMsIGNvbnRleHQpIHtcbiAgbGV0IGluZGV4ID0gZXZlbnRzLmxlbmd0aFxuICAvKiogQHR5cGUge1Rva2VufHVuZGVmaW5lZH0gKi9cbiAgbGV0IGxhYmVsU3RhcnRcblxuICAvLyBGaW5kIGFuIG9wZW5pbmcuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKFxuICAgICAgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSB0eXBlcy5sYWJlbEltYWdlICYmXG4gICAgICBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInXG4gICAgKSB7XG4gICAgICBsYWJlbFN0YXJ0ID0gZXZlbnRzW2luZGV4XVsxXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQobGFiZWxTdGFydCwgJ2V4cGVjdGVkIGBsYWJlbFN0YXJ0YCB0byByZXNvbHZlJylcblxuICAvLyBDaGFuZ2UgdGhlIGBsYWJlbEltYWdlTWFya2VyYCB0byBhIGBkYXRhYC5cbiAgZXZlbnRzW2luZGV4ICsgMV1bMV0udHlwZSA9IHR5cGVzLmRhdGFcbiAgZXZlbnRzW2luZGV4ICsgM11bMV0udHlwZSA9ICdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcidcblxuICAvLyBUaGUgd2hvbGUgKHdpdGhvdXQgYCFgKTpcbiAgY29uc3QgY2FsbCA9IHtcbiAgICB0eXBlOiAnZ2ZtRm9vdG5vdGVDYWxsJyxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4ICsgM11bMV0uc3RhcnQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5lbmQpXG4gIH1cbiAgLy8gVGhlIGBeYCBtYXJrZXJcbiAgY29uc3QgbWFya2VyID0ge1xuICAgIHR5cGU6ICdnZm1Gb290bm90ZUNhbGxNYXJrZXInLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXggKyAzXVsxXS5lbmQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4ICsgM11bMV0uZW5kKVxuICB9XG4gIC8vIEluY3JlbWVudCB0aGUgZW5kIDEgY2hhcmFjdGVyLlxuICBtYXJrZXIuZW5kLmNvbHVtbisrXG4gIG1hcmtlci5lbmQub2Zmc2V0KytcbiAgbWFya2VyLmVuZC5fYnVmZmVySW5kZXgrK1xuICBjb25zdCBzdHJpbmcgPSB7XG4gICAgdHlwZTogJ2dmbUZvb3Rub3RlQ2FsbFN0cmluZycsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIG1hcmtlci5lbmQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5zdGFydClcbiAgfVxuICBjb25zdCBjaHVuayA9IHtcbiAgICB0eXBlOiB0eXBlcy5jaHVua1N0cmluZyxcbiAgICBjb250ZW50VHlwZTogJ3N0cmluZycsXG4gICAgc3RhcnQ6IE9iamVjdC5hc3NpZ24oe30sIHN0cmluZy5zdGFydCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBzdHJpbmcuZW5kKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGNvbnN0IHJlcGxhY2VtZW50ID0gW1xuICAgIC8vIFRha2UgdGhlIGBsYWJlbEltYWdlTWFya2VyYCAobm93IGBkYXRhYCwgdGhlIGAhYClcbiAgICBldmVudHNbaW5kZXggKyAxXSxcbiAgICBldmVudHNbaW5kZXggKyAyXSxcbiAgICBbJ2VudGVyJywgY2FsbCwgY29udGV4dF0sXG4gICAgLy8gVGhlIGBbYFxuICAgIGV2ZW50c1tpbmRleCArIDNdLFxuICAgIGV2ZW50c1tpbmRleCArIDRdLFxuICAgIC8vIFRoZSBgXmAuXG4gICAgWydlbnRlcicsIG1hcmtlciwgY29udGV4dF0sXG4gICAgWydleGl0JywgbWFya2VyLCBjb250ZXh0XSxcbiAgICAvLyBFdmVyeXRoaW5nIGluIGJldHdlZW4uXG4gICAgWydlbnRlcicsIHN0cmluZywgY29udGV4dF0sXG4gICAgWydlbnRlcicsIGNodW5rLCBjb250ZXh0XSxcbiAgICBbJ2V4aXQnLCBjaHVuaywgY29udGV4dF0sXG4gICAgWydleGl0Jywgc3RyaW5nLCBjb250ZXh0XSxcbiAgICAvLyBUaGUgZW5kaW5nIChgXWAsIHByb3Blcmx5IHBhcnNlZCBhbmQgbGFiZWxsZWQpLlxuICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMl0sXG4gICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXSxcbiAgICBbJ2V4aXQnLCBjYWxsLCBjb250ZXh0XVxuICBdXG5cbiAgZXZlbnRzLnNwbGljZShpbmRleCwgZXZlbnRzLmxlbmd0aCAtIGluZGV4ICsgMSwgLi4ucmVwbGFjZW1lbnQpXG5cbiAgcmV0dXJuIGV2ZW50c1xufVxuXG4vKiogQHR5cGUge1Rva2VuaXplcn0gKi9cbmZ1bmN0aW9uIHRva2VuaXplR2ZtRm9vdG5vdGVDYWxsKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIEl04oCZcyBmaW5lIVxuICBjb25zdCBkZWZpbmVkID0gc2VsZi5wYXJzZXIuZ2ZtRm9vdG5vdGVzIHx8IChzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgPSBbXSlcbiAgbGV0IHNpemUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGRhdGFcblxuICByZXR1cm4gc3RhcnRcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgYXNzZXJ0KGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0LCAnZXhwZWN0ZWQgYFtgJylcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGwnKVxuICAgIGVmZmVjdHMuZW50ZXIoJ2dmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyJylcbiAgICByZXR1cm4gY2FsbFN0YXJ0XG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBjYWxsU3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlICE9PSBjb2Rlcy5jYXJldCkgcmV0dXJuIG5vayhjb2RlKVxuXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsTWFya2VyJylcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlQ2FsbE1hcmtlcicpXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nJylcbiAgICBlZmZlY3RzLmVudGVyKCdjaHVua1N0cmluZycpLmNvbnRlbnRUeXBlID0gJ3N0cmluZydcbiAgICByZXR1cm4gY2FsbERhdGFcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGNhbGxEYXRhKGNvZGUpIHtcbiAgICAvKiogQHR5cGUge1Rva2VufSAqL1xuICAgIGxldCB0b2tlblxuXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMuZW9mIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCB8fFxuICAgICAgc2l6ZSsrID4gY29uc3RhbnRzLmxpbmtSZWZlcmVuY2VTaXplTWF4XG4gICAgKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldCkge1xuICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIHJldHVybiBub2soY29kZSlcbiAgICAgIH1cblxuICAgICAgZWZmZWN0cy5leGl0KCdjaHVua1N0cmluZycpXG4gICAgICB0b2tlbiA9IGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nJylcbiAgICAgIHJldHVybiBkZWZpbmVkLmluY2x1ZGVzKG5vcm1hbGl6ZUlkZW50aWZpZXIoc2VsZi5zbGljZVNlcmlhbGl6ZSh0b2tlbikpKVxuICAgICAgICA/IGVuZChjb2RlKVxuICAgICAgICA6IG5vayhjb2RlKVxuICAgIH1cblxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuXG4gICAgaWYgKCFtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICBkYXRhID0gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggPyBjYWxsRXNjYXBlIDogY2FsbERhdGFcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGNhbGxFc2NhcGUoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmxlZnRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLnJpZ2h0U3F1YXJlQnJhY2tldFxuICAgICkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBzaXplKytcbiAgICAgIHJldHVybiBjYWxsRGF0YVxuICAgIH1cblxuICAgIHJldHVybiBjYWxsRGF0YShjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gZW5kKGNvZGUpIHtcbiAgICBhc3NlcnQoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0LCAnZXhwZWN0ZWQgYF1gJylcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpXG4gICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGwnKVxuICAgIHJldHVybiBva1xuICB9XG59XG5cbi8qKiBAdHlwZSB7VG9rZW5pemVyfSAqL1xuZnVuY3Rpb24gdG9rZW5pemVEZWZpbml0aW9uU3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpc1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgSXTigJlzIGZpbmUhXG4gIGNvbnN0IGRlZmluZWQgPSBzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgfHwgKHNlbGYucGFyc2VyLmdmbUZvb3Rub3RlcyA9IFtdKVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGlkZW50aWZpZXJcbiAgbGV0IHNpemUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbnx1bmRlZmluZWR9ICovXG4gIGxldCBkYXRhXG5cbiAgcmV0dXJuIHN0YXJ0XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGFzc2VydChjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCwgJ2V4cGVjdGVkIGBbYCcpXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVEZWZpbml0aW9uJykuX2NvbnRhaW5lciA9IHRydWVcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCcpXG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXInKVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXInKVxuICAgIHJldHVybiBsYWJlbFN0YXJ0XG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBsYWJlbFN0YXJ0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuY2FyZXQpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTWFya2VyJylcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nJylcbiAgICAgIHJldHVybiBhdEJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vayhjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgICBsZXQgdG9rZW5cblxuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQgfHxcbiAgICAgIHNpemUgPiBjb25zdGFudHMubGlua1JlZmVyZW5jZVNpemVNYXhcbiAgICApIHtcbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0KSB7XG4gICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgICAgfVxuXG4gICAgICB0b2tlbiA9IGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcnKVxuICAgICAgaWRlbnRpZmllciA9IG5vcm1hbGl6ZUlkZW50aWZpZXIoc2VsZi5zbGljZVNlcmlhbGl6ZSh0b2tlbikpXG4gICAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXInKVxuICAgICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCcpXG4gICAgICByZXR1cm4gbGFiZWxBZnRlclxuICAgIH1cblxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgICAgc2l6ZSsrXG4gICAgICByZXR1cm4gYXRCcmVha1xuICAgIH1cblxuICAgIGVmZmVjdHMuZW50ZXIoJ2NodW5rU3RyaW5nJykuY29udGVudFR5cGUgPSAnc3RyaW5nJ1xuICAgIHJldHVybiBsYWJlbChjb2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gbGFiZWwoY29kZSkge1xuICAgIGlmIChcbiAgICAgIGNvZGUgPT09IGNvZGVzLmVvZiB8fFxuICAgICAgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpIHx8XG4gICAgICBjb2RlID09PSBjb2Rlcy5sZWZ0U3F1YXJlQnJhY2tldCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0IHx8XG4gICAgICBzaXplID4gY29uc3RhbnRzLmxpbmtSZWZlcmVuY2VTaXplTWF4XG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2NodW5rU3RyaW5nJylcbiAgICAgIHJldHVybiBhdEJyZWFrKGNvZGUpXG4gICAgfVxuXG4gICAgaWYgKCFtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICBkYXRhID0gdHJ1ZVxuICAgIH1cblxuICAgIHNpemUrK1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKVxuICAgIHJldHVybiBjb2RlID09PSBjb2Rlcy5iYWNrc2xhc2ggPyBsYWJlbEVzY2FwZSA6IGxhYmVsXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBsYWJlbEVzY2FwZShjb2RlKSB7XG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gY29kZXMubGVmdFNxdWFyZUJyYWNrZXQgfHxcbiAgICAgIGNvZGUgPT09IGNvZGVzLmJhY2tzbGFzaCB8fFxuICAgICAgY29kZSA9PT0gY29kZXMucmlnaHRTcXVhcmVCcmFja2V0XG4gICAgKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgIHNpemUrK1xuICAgICAgcmV0dXJuIGxhYmVsXG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVsKGNvZGUpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBsYWJlbEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gY29kZXMuY29sb24pIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2RlZmluaXRpb25NYXJrZXInKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2RlZmluaXRpb25NYXJrZXInKVxuICAgICAgLy8gQW55IHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIG1hcmtlciBpcyBlYXRlbiwgZm9ybWluZyBpbmRlbnRlZCBjb2RlXG4gICAgICAvLyBpcyBub3QgcG9zc2libGUuXG4gICAgICAvLyBObyBzcGFjZSBpcyBhbHNvIGZpbmUsIGp1c3QgbGlrZSBhIGJsb2NrIHF1b3RlIG1hcmtlci5cbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgZG9uZSwgJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UnKVxuICAgIH1cblxuICAgIHJldHVybiBub2soY29kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvbmUoY29kZSkge1xuICAgIGlmICghZGVmaW5lZC5pbmNsdWRlcyhpZGVudGlmaWVyKSkge1xuICAgICAgZGVmaW5lZC5wdXNoKGlkZW50aWZpZXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIG9rKGNvZGUpXG4gIH1cbn1cblxuLyoqIEB0eXBlIHtUb2tlbml6ZXJ9ICovXG5mdW5jdGlvbiB0b2tlbml6ZURlZmluaXRpb25Db250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICAvLyBFaXRoZXIgYSBibGFuayBsaW5lLCB3aGljaCBpcyBva2F5LCBvciBhbiBpbmRlbnRlZCB0aGluZy5cbiAgcmV0dXJuIGVmZmVjdHMuY2hlY2soYmxhbmtMaW5lLCBvaywgZWZmZWN0cy5hdHRlbXB0KGluZGVudCwgb2ssIG5vaykpXG59XG5cbi8qKiBAdHlwZSB7RXhpdGVyfSAqL1xuZnVuY3Rpb24gZ2ZtRm9vdG5vdGVEZWZpbml0aW9uRW5kKGVmZmVjdHMpIHtcbiAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZURlZmluaXRpb24nKVxufVxuXG4vKiogQHR5cGUge1Rva2VuaXplcn0gKi9cbmZ1bmN0aW9uIHRva2VuaXplSW5kZW50KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXNcblxuICByZXR1cm4gZmFjdG9yeVNwYWNlKFxuICAgIGVmZmVjdHMsXG4gICAgYWZ0ZXJQcmVmaXgsXG4gICAgJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCcsXG4gICAgY29uc3RhbnRzLnRhYlNpemUgKyAxXG4gIClcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlclByZWZpeChjb2RlKSB7XG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdXG4gICAgcmV0dXJuIHRhaWwgJiZcbiAgICAgIHRhaWxbMV0udHlwZSA9PT0gJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCcgJiZcbiAgICAgIHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoID09PSBjb25zdGFudHMudGFiU2l6ZVxuICAgICAgPyBvayhjb2RlKVxuICAgICAgOiBub2soY29kZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9rIiwiYXNzZXJ0IiwiYmxhbmtMaW5lIiwiZmFjdG9yeVNwYWNlIiwibWFya2Rvd25MaW5lRW5kaW5nIiwibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsImNvZGVzIiwiY29uc3RhbnRzIiwibm9ybWFsaXplSWRlbnRpZmllciIsInR5cGVzIiwiaW5kZW50IiwidG9rZW5pemUiLCJ0b2tlbml6ZUluZGVudCIsInBhcnRpYWwiLCJnZm1Gb290bm90ZSIsImRvY3VtZW50IiwibGVmdFNxdWFyZUJyYWNrZXQiLCJ0b2tlbml6ZURlZmluaXRpb25TdGFydCIsImNvbnRpbnVhdGlvbiIsInRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbiIsImV4aXQiLCJnZm1Gb290bm90ZURlZmluaXRpb25FbmQiLCJ0ZXh0IiwidG9rZW5pemVHZm1Gb290bm90ZUNhbGwiLCJyaWdodFNxdWFyZUJyYWNrZXQiLCJhZGQiLCJ0b2tlbml6ZVBvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIsInJlc29sdmVUbyIsInJlc29sdmVUb1BvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIsImVmZmVjdHMiLCJub2siLCJzZWxmIiwiaW5kZXgiLCJldmVudHMiLCJsZW5ndGgiLCJkZWZpbmVkIiwicGFyc2VyIiwiZ2ZtRm9vdG5vdGVzIiwibGFiZWxTdGFydCIsInRva2VuIiwidHlwZSIsImxhYmVsSW1hZ2UiLCJsYWJlbExpbmsiLCJsYWJlbCIsImltYWdlIiwibGluayIsInN0YXJ0IiwiY29kZSIsIl9iYWxhbmNlZCIsImlkIiwic2xpY2VTZXJpYWxpemUiLCJlbmQiLCJub3ciLCJjaGFyQ29kZUF0IiwiY2FyZXQiLCJpbmNsdWRlcyIsInNsaWNlIiwiZW50ZXIiLCJjb25zdW1lIiwiY29udGV4dCIsImRhdGEiLCJjYWxsIiwiT2JqZWN0IiwiYXNzaWduIiwibWFya2VyIiwiY29sdW1uIiwib2Zmc2V0IiwiX2J1ZmZlckluZGV4Iiwic3RyaW5nIiwiY2h1bmsiLCJjaHVua1N0cmluZyIsImNvbnRlbnRUeXBlIiwicmVwbGFjZW1lbnQiLCJzcGxpY2UiLCJzaXplIiwiY2FsbFN0YXJ0IiwiY2FsbERhdGEiLCJlb2YiLCJsaW5rUmVmZXJlbmNlU2l6ZU1heCIsImJhY2tzbGFzaCIsImNhbGxFc2NhcGUiLCJpZGVudGlmaWVyIiwiX2NvbnRhaW5lciIsImF0QnJlYWsiLCJsYWJlbEFmdGVyIiwibGFiZWxFc2NhcGUiLCJjb2xvbiIsImRvbmUiLCJwdXNoIiwiY2hlY2siLCJhdHRlbXB0IiwiYWZ0ZXJQcmVmaXgiLCJ0YWJTaXplIiwidGFpbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js\n");
/***/ })
};
;