{"version":3,"file":"static/js/main.34a2831e.js","mappings":"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ACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MAaWC,GAAe,CAAC,MAAO,SAAU,QAAS,YClE1CC,GAAW,CACtBtyF,KAAM,WACNmnF,SAkCF,SAA0BxpD,EAASuU,EAAI03C,GACrC,IAGIsF,EAGAqD,EAGArsF,EAGAvG,EAGAovF,EAfEx7F,EAAO0C,KAgBb,OAGA,SAAeiM,GAIb,OAHAy7B,EAAQqpD,MAAM,YACdrpD,EAAQqpD,MAAM,gBACdrpD,EAAQspD,QAAQ/kF,GACThH,GAIT,SAASA,EAAKgH,GACZ,OAAa,KAATA,GACFy7B,EAAQspD,QAAQ/kF,GACTswF,GAGI,KAATtwF,GACFy7B,EAAQspD,QAAQ/kF,GACTuwF,GAGI,KAATvwF,GACFy7B,EAAQspD,QAAQ/kF,GAChBgtF,EAAO,EAGA37F,EAAKq1F,UAAY12C,EAAKwgD,GAG3B3M,GAAW7jF,IACby7B,EAAQspD,QAAQ/kF,GAChBgE,EAASgI,OAAO8f,aAAa9rB,GAC7BqwF,GAAW,EACJzuD,GAGF8lD,EAAI1nF,GAIb,SAASswF,EAAiBtwF,GACxB,OAAa,KAATA,GACFy7B,EAAQspD,QAAQ/kF,GAChBgtF,EAAO,EACAyD,GAGI,KAATzwF,GACFy7B,EAAQspD,QAAQ/kF,GAChBgtF,EAAO,EACPhpF,EAAS,SACTvG,EAAQ,EACDizF,GAGL7M,GAAW7jF,IACby7B,EAAQspD,QAAQ/kF,GAChBgtF,EAAO,EACA37F,EAAKq1F,UAAY12C,EAAKwgD,GAGxB9I,EAAI1nF,GAIb,SAASywF,EAAkBzwF,GACzB,OAAa,KAATA,GACFy7B,EAAQspD,QAAQ/kF,GACT3O,EAAKq1F,UAAY12C,EAAKwgD,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","sources":["../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/extend/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-buffer/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/getUnixTime/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","api/index.ts","api/gamesApi.ts","pages/Home/home.screen.tsx","pages/Scoreboard/scoreboard.screen.tsx","api/playersApi.ts","pages/Game/init.screen.tsx","pages/Game/rules.screen.tsx","../node_modules/js-cookie/dist/js.cookie.mjs","utils/helpers.ts","pages/Game/pay.screen.tsx","pages/Game/success.screen.tsx","pages/Game/error.screen.tsx","pages/Terms/terms.screen.tsx","pages/Privacy/privacy.screen.tsx","api/usersApi.ts","pages/Game/payEfectivo.screen.tsx","pages/Landing/landing.screen.tsx","pages/LoginAdmin/loginAdmin.screen.tsx","App.tsx","index.tsx"],"sourcesContent":["function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).filter(Boolean).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new q(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new q(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new q(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new q(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new q(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new q(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new q(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new q(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new q(a,5,!1,a.toLowerCase(),null,!1,!1)});var pa=/[\\-:]([a-z])/g;function qa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(pa,\nqa);z[b]=new q(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new q(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ra(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{La=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ka(a):\"\"}\nfunction Na(a){switch(a.tag){case 5:return Ka(a.type);case 16:return Ka(\"Lazy\");case 13:return Ka(\"Suspense\");case 19:return Ka(\"SuspenseList\");case 0:case 2:case 15:return a=Ma(a.type,!1),a;case 11:return a=Ma(a.type.render,!1),a;case 1:return a=Ma(a.type,!0),a;default:return\"\"}}\nfunction Oa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case va:return\"Fragment\";case ua:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ca:return\"Suspense\";case Da:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Aa:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Ba:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ea:return b=a.displayName||null,null!==b?b:Oa(a.type)||\"Memo\";case Fa:b=a._payload;a=a._init;try{return Oa(a(b))}catch(c){}}return null}\nfunction Pa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Oa(b);case 8:return b===wa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Qa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ra(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Sa(a){var b=Ra(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ta(a){a._valueTracker||(a._valueTracker=Sa(a))}function Ua(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ra(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Va(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Wa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Xa(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Qa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Ya(a,b){b=b.checked;null!=b&&ra(a,\"checked\",b,!1)}\nfunction Za(a,b){Ya(a,b);var c=Qa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?$a(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&$a(a,b.type,Qa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction ab(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction $a(a,b,c){if(\"number\"!==b||Va(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var bb=Array.isArray;\nfunction cb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=jb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction lb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar mb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},nb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(mb).forEach(function(a){nb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});function ob(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||mb.hasOwnProperty(a)&&mb[a]?(\"\"+b).trim():b+\"px\"}\nfunction pb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ob(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var qb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction rb(a,b){if(b){if(qb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction sb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var tb=null;function ub(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var vb=null,wb=null,xb=null;\nfunction yb(a){if(a=zb(a)){if(\"function\"!==typeof vb)throw Error(p(280));var b=a.stateNode;b&&(b=Ab(b),vb(a.stateNode,a.type,b))}}function Bb(a){wb?xb?xb.push(a):xb=[a]:wb=a}function Cb(){if(wb){var a=wb,b=xb;xb=wb=null;yb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(mc(a)/nc|0)|0}var oc=64,pc=4194304;\nfunction qc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function rc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=qc(h):(f&=g,0!==f&&(d=qc(f)))}else g=c&~e,0!==g?d=qc(g):0!==f&&(d=qc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}function wc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-lc(b);a[b]=c}\nfunction xc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=Xd),$d=String.fromCharCode(32),ae=!1;\nfunction be(a,b){switch(a){case \"keyup\":return-1!==Vd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ce(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var de=!1;function ee(a,b){switch(a){case \"compositionend\":return ce(b);case \"keypress\":if(32!==b.which)return null;ae=!0;return $d;case \"textInput\":return a=b.data,a===$d&&ae?null:a;default:return null}}\nfunction fe(a,b){if(de)return\"compositionend\"===a||!Wd&&be(a,b)?(a=id(),hd=gd=fd=null,de=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ee(c)}}function Ge(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ge(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction He(){for(var a=window,b=Va();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Va(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Je(a){var b=He(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ge(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Fe(c,f);var g=Fe(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Le=null,Me=null,Ne=null,Oe=!1;\nfunction Pe(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Oe||null==Le||Le!==Va(d)||(d=Le,\"selectionStart\"in d&&Ie(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Ne&&De(Ne,d)||(Ne=d,d=je(Me,\"onSelect\"),0Nf||(a.current=Mf[Nf],Mf[Nf]=null,Nf--)}function H(a,b){Nf++;Mf[Nf]=a.current;a.current=b}var Pf={},I=Of(Pf),Qf=Of(!1),Rf=Pf;function Sf(a,b){var c=a.type.contextTypes;if(!c)return Pf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Tf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Uf(){G(Qf);G(I)}function Vf(a,b,c){if(I.current!==Pf)throw Error(p(168));H(I,b);H(Qf,c)}function Wf(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Pa(a)||\"Unknown\",e));return A({},c,d)}\nfunction Xf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Pf;Rf=I.current;H(I,a);H(Qf,Qf.current);return!0}function Yf(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=Wf(a,b,Rf),d.__reactInternalMemoizedMergedChildContext=a,G(Qf),G(I),H(I,a)):G(Qf);H(Qf,c)}var Zf=null,$f=!1,ag=!1;function bg(a){null===Zf?Zf=[a]:Zf.push(a)}function cg(a){$f=!0;bg(a)}\nfunction dg(){if(!ag&&null!==Zf){ag=!0;var a=0,b=E;try{var c=Zf;for(E=1;a>=g;e-=g;Rg=1<<32-lc(b)+e|c<r?(x=m,m=null):x=m.sibling;var t=u(e,m,h[r],k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,r);null===n?l=t:n.sibling=t;n=t;m=x}if(r===h.length)return c(e,m),N&&Tg(e,r),l;if(null===m){for(;rr?(x=n,n=null):x=n.sibling;var v=u(e,n,t.value,k);if(null===v){null===n&&(n=x);break}a&&n&&null===v.alternate&&b(e,n);g=f(v,g,r);null===m?l=v:m.sibling=v;m=v;n=x}if(t.done)return c(e,\nn),N&&Tg(e,r),l;if(null===n){for(;!t.done;r++,t=h.next())t=w(e,t.value,k),null!==t&&(g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);N&&Tg(e,r);return l}for(n=d(e,n);!t.done;r++,t=h.next())t=y(n,e,r,t.value,k),null!==t&&(a&&null!==t.alternate&&n.delete(null===t.key?r:t.key),g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);a&&n.forEach(function(a){return b(e,a)});N&&Tg(e,r);return l}function C(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===va&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ta:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===va){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Fa&&kh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ih(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===va?(d=qh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=oh(f.type,f.key,f.props,null,a.mode,h),h.ref=ih(a,d,f),h.return=a,a=h)}return g(a);case ua:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ph(f,a.mode,h);d.return=a;a=d}return g(a);case Fa:return l=f._init,C(a,d,l(f._payload),h)}if(bb(f))return n(a,d,f,h);if(Ia(f))return v(a,d,f,h);jh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=nh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return C}var rh=lh(!0),sh=lh(!1),th={},uh=Of(th),vh=Of(th),wh=Of(th);function xh(a){if(a===th)throw Error(p(174));return a}function yh(a,b){H(wh,b);H(vh,a);H(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:ib(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=ib(b,a)}G(uh);H(uh,b)}function zh(){G(uh);G(vh);G(wh)}\nfunction Ah(a){xh(wh.current);var b=xh(uh.current);var c=ib(b,a.type);b!==c&&(H(vh,a),H(uh,c))}function Bh(a){vh.current===a&&(G(uh),G(vh))}var P=Of(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;ac?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{E=c,Gh.transition=d}}function ti(){return Uh().memoizedState}function ui(a,b,c){var d=Dg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};vi(a)?wi(b,c):(xi(a,b,c),c=M(),a=Eg(a,d,c),null!==a&&yi(a,b,d))}\nfunction gi(a,b,c){var d=Dg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(vi(a))wi(b,e);else{xi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ce(h,g))return}catch(k){}finally{}c=M();a=Eg(a,d,c);null!==a&&yi(a,b,d)}}function vi(a){var b=a.alternate;return a===Q||null!==b&&b===Q}\nfunction wi(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function xi(a,b,c){null!==J&&0!==(a.mode&1)&&0===(K&2)?(a=b.interleaved,null===a?(c.next=c,null===qg?qg=[b]:qg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function yi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;yc(a,c)}}\nvar Rh={readContext:pg,useCallback:U,useContext:U,useEffect:U,useImperativeHandle:U,useInsertionEffect:U,useLayoutEffect:U,useMemo:U,useReducer:U,useRef:U,useState:U,useDebugValue:U,useDeferredValue:U,useTransition:U,useMutableSource:U,useSyncExternalStore:U,useId:U,unstable_isNewReconciler:!1},Oh={readContext:pg,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:pg,useEffect:ki,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ii(4194308,\n4,ni.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ii(4194308,4,a,b)},useInsertionEffect:function(a,b){return ii(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=ui.bind(null,Q,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:fi,useDebugValue:pi,useDeferredValue:function(a){var b=fi(a),c=b[0],d=b[1];ki(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=fi(!1),b=a[0];a=si.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=Q,e=Th();if(N){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===J)throw Error(p(349));\n0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ki(ai.bind(null,d,f,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=J.identifierPrefix;if(N){var c=Sg;var d=Rg;c=(d&~(1<<32-lc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):\n(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[If]=b;a[Jf]=d;Li(a,b,!1,!1);b.stateNode=a;a:{g=sb(c,d);switch(c){case \"dialog\":F(\"cancel\",a);F(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":F(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eTi&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,\nnull!==c&&(b.updateQueue=c,b.flags|=4),Pi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!N)return V(b),null}else 2*D()-f.renderingStartTime>Ti&&1073741824!==c&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=D(),b.sibling=null,c=P.current,H(P,d?c&1|2:c&1),b;V(b);return null;case 22:case 23:return Ui(),d=null!==\nb.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(Vi&1073741824)&&(V(b),b.subtreeFlags&6&&(b.flags|=8192)):V(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var Wi=sa.ReactCurrentOwner,og=!1;function Xi(a,b,c,d){b.child=null===a?sh(b,null,c,d):rh(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ng(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&c&&Vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=oh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:De;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=mh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a&&De(a.memoizedProps,d)&&a.ref===b.ref)if(og=!1,0!==(a.lanes&e))0!==(a.flags&131072)&&(og=!0);else return b.lanes=a.lanes,Zi(a,b,e);return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null},H(ej,Vi),Vi|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null},d=null!==f?f.baseLanes:c,H(ej,Vi),Vi|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null},b.updateQueue=null,H(ej,Vi),Vi|=a,null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):\nd=c,H(ej,Vi),Vi|=d;Xi(a,b,e,c);return b.child}function fj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Tf(c)?Rf:I.current;f=Sf(b,f);ng(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&d&&Vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction gj(a,b,c,d,e){if(Tf(c)){var f=!0;Xf(b)}else f=!1;ng(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Hg(b,c,d),Jg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=pg(l):(l=Tf(c)?Rf:I.current,l=Sf(b,l));var m=c.getDerivedStateFromProps,w=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;w||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ig(b,g,d,l);rg=!1;var u=b.memoizedState;g.state=u;yg(b,d,g,e);k=b.memoizedState;h!==d||u!==k||Qf.current||rg?(\"function\"===typeof m&&(Cg(b,c,m,d),k=b.memoizedState),(h=rg||Gg(b,c,h,d,u,k,l))?(w||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;tg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:fg(b.type,h);g.props=l;w=b.pendingProps;u=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=pg(k):(k=Tf(c)?Rf:I.current,k=Sf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==w||u!==k)&&Ig(b,g,d,k);rg=!1;u=b.memoizedState;g.state=u;yg(b,d,g,e);var n=b.memoizedState;h!==w||u!==n||Qf.current||rg?(\"function\"===typeof y&&(Cg(b,c,y,d),n=b.memoizedState),(l=rg||Gg(b,c,l,d,u,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),d=!1)}return hj(a,b,c,d,f,e)}\nfunction hj(a,b,c,d,e,f){fj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&Yf(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=rh(b,a.child,null,f),b.child=rh(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&Yf(b,c,!0);return b.child}function ij(a){var b=a.stateNode;b.pendingContext?Vf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Vf(a,b.context,!1);yh(a,b.containerInfo)}\nfunction jj(a,b,c,d,e){gh();hh(e);b.flags|=256;Xi(a,b,c,d);return b.child}var kj={dehydrated:null,treeContext:null,retryLane:0};function lj(a){return{baseLanes:a,cachePool:null}}\nfunction mj(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;H(P,e&1);if(null===a){dh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=nj(e,d,0,null),a=qh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=lj(c),b.memoizedState=kj,a):oj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,pj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=nj({mode:\"visible\",children:d.children},e,0,null);f=qh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&rh(b,a.child,\nnull,c);b.child.memoizedState=lj(c);b.memoizedState=kj;return f}if(0===(b.mode&1))b=pj(a,b,c,null);else if(\"$!\"===h.data)b=pj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),og||d){d=J;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Eg(a,d,-1))}Si();b=pj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=qj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,Yg=Ff(h.nextSibling),Xg=b,N=!0,Zg=null,null!==c&&(Og[Pg++]=Rg,Og[Pg++]=Sg,Og[Pg++]=Qg,Rg=c.id,Sg=c.overflow,Qg=b),b=oj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}\nfunction oj(a,b){b=nj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){var e=a.child;a=e.sibling;c=mh(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction rj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=mh(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=mh(g,d):(d=qh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function pj(a,b,c,d){null!==d&&hh(d);rh(b,a.child,null,c);a=oj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction tj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);mg(a.return,b,c)}function uj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction vj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&tj(a,c,b);else if(19===a.tag)tj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}H(P,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);uj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}uj(b,!0,c,null,f);break;case \"together\":uj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);zg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=mh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=mh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction wj(a,b,c){switch(b.tag){case 3:ij(b);gh();break;case 5:Ah(b);break;case 1:Tf(b.type)&&Xf(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;H(gg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return H(P,P.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return mj(a,b,c);H(P,P.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}H(P,P.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return vj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);H(P,P.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}\nfunction xj(a,b){Wg(b);switch(b.tag){case 1:return Tf(b.type)&&Uf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),G(Qf),G(I),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:G(P);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));gh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return G(P),null;case 4:return zh(),null;case 10:return lg(b.type._context),null;case 22:case 23:return Ui(),\nnull;case 24:return null;default:return null}}var yj=!1,zj=!1,Aj=\"function\"===typeof WeakSet?WeakSet:Set,X=null;function Bj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){Cj(a,b,d)}else c.current=null}function Dj(a,b,c){try{c()}catch(d){Cj(a,b,d)}}var Ej=!1;\nfunction Fj(a,b){a=He();if(Ie(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(O){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,w=a,u=null;b:for(;;){for(var y;;){w!==c||0!==e&&3!==w.nodeType||(h=g+e);w!==f||0!==d&&3!==w.nodeType||(k=g+d);3===w.nodeType&&(g+=w.nodeValue.length);\nif(null===(y=w.firstChild))break;u=w;w=y}for(;;){if(w===a)break b;u===c&&++l===e&&(h=g);u===f&&++m===d&&(k=g);if(null!==(y=w.nextSibling))break;w=u;u=w.parentNode}w=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;xf={focusedElem:a,selectionRange:c};for(X=b;null!==X;)if(b=X,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,X=a;else for(;null!==X;){b=X;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==\nn){var v=n.memoizedProps,C=n.memoizedState,t=b.stateNode,r=t.getSnapshotBeforeUpdate(b.elementType===b.type?v:fg(b.type,v),C);t.__reactInternalSnapshotBeforeUpdate=r}break;case 3:var x=b.stateNode.containerInfo;if(1===x.nodeType)x.textContent=\"\";else if(9===x.nodeType){var B=x.body;null!=B&&(B.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(O){Cj(b,b.return,O)}a=b.sibling;if(null!==a){a.return=b.return;X=a;break}X=b.return}n=Ej;Ej=!1;return n}\nfunction Gj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Dj(b,c,f)}e=e.next}while(e!==d)}}function Hj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Ij(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Jj(a,b,c){if(ic&&\"function\"===typeof ic.onCommitFiberUnmount)try{ic.onCommitFiberUnmount(hc,b)}catch(g){}switch(b.tag){case 0:case 11:case 14:case 15:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a=a.next;do{var e=d,f=e.destroy;e=e.tag;void 0!==f&&(0!==(e&2)?Dj(b,c,f):0!==(e&4)&&Dj(b,c,f));d=d.next}while(d!==a)}break;case 1:Bj(b,c);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(g){Cj(b,\nc,g)}break;case 5:Bj(b,c);break;case 4:Kj(a,b,c)}}function Lj(a){var b=a.alternate;null!==b&&(a.alternate=null,Lj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[If],delete b[Jf],delete b[jf],delete b[Kf],delete b[Lf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Mj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Nj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Mj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Oj(a){a:{for(var b=a.return;null!==b;){if(Mj(b))break a;b=b.return}throw Error(p(160));}var c=b;switch(c.tag){case 5:b=c.stateNode;c.flags&32&&(lb(b,\"\"),c.flags&=-33);c=Nj(a);Pj(a,c,b);break;case 3:case 4:b=c.stateNode.containerInfo;c=Nj(a);Qj(a,c,b);break;default:throw Error(p(161));}}\nfunction Qj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=wf));else if(4!==d&&(a=a.child,null!==a))for(Qj(a,b,c),a=a.sibling;null!==a;)Qj(a,b,c),a=a.sibling}\nfunction Pj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Pj(a,b,c),a=a.sibling;null!==a;)Pj(a,b,c),a=a.sibling}\nfunction Kj(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(p(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Jj(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(18===d.tag)g?(h=f,k=d.stateNode,8===h.nodeType?Ef(h.parentNode,k):1===h.nodeType&&Ef(h,k),Yc(h)):Ef(f,d.stateNode);else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Jj(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&\n(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Rj(a,b){switch(b.tag){case 0:case 11:case 14:case 15:Gj(3,b,b.return);Hj(3,b);Gj(5,b,b.return);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Ya(c,d);sb(a,e);b=sb(a,d);for(e=0;ee&&(e=g);d&=~f}d=e;d=D()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bk(d/1960))-d;if(10a?16:a;if(null===lk)var d=!1;else{a=lk;lk=null;mk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(X=a.current;null!==X;){var f=X,g=f.child;if(0!==(X.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kD()-Vj?Ak(a,0):hk|=c);tk(a,b)}function Ok(a,b){0===b&&(0===(a.mode&1)?b=1:(b=pc,pc<<=1,0===(pc&130023424)&&(pc=4194304)));var c=M();a=rk(a,b);null!==a&&(wc(a,b,c),tk(a,c))}function qj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ok(a,c)}\nfunction Tj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Ok(a,c)}var Lk;\nLk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Qf.current)og=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return og=!1,wj(a,b,c);og=0!==(a.flags&131072)?!0:!1}else og=!1,N&&0!==(b.flags&1048576)&&Ug(b,Ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Sf(b,I.current);ng(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Tf(d)?(f=!0,Xf(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,sg(b),e.updater=Fg,b.stateNode=e,e._reactInternals=b,Jg(b,d,a,c),b=hj(null,b,d,!0,f,c)):(b.tag=0,N&&f&&Vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Pk(d);a=fg(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=gj(null,b,\nd,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,fg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),gj(a,b,d,e,c);case 3:a:{ij(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;tg(a,b);yg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=jj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=jj(a,b,d,c,e);break a}else for(Yg=Ff(b.stateNode.containerInfo.firstChild),Xg=b,N=!0,Zg=null,c=sh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{gh();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&dh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,\nyf(d,e)?g=null:null!==f&&yf(d,f)&&(b.flags|=32),fj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&dh(b),null;case 13:return mj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=rh(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=\nb.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;H(gg,d._currentValue);d._currentValue=g;if(null!==f)if(Ce(f.value,g)){if(f.children===e.children&&!Qf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ug(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=\nc;k=f.alternate;null!==k&&(k.lanes|=c);mg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);mg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,\nng(b,c),e=pg(e),d=d(e),b.flags|=1,Xi(a,b,d,c),b.child;case 14:return d=b.type,e=fg(d,b.pendingProps),e=fg(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Tf(d)?(a=!0,Xf(b)):a=!1,ng(b,c),Hg(b,d,e),Jg(b,d,e,c),hj(null,b,d,!0,a,c);case 19:return vj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function vk(a,b){return Yb(a,b)}\nfunction Qk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function ah(a,b,c,d){return new Qk(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Pk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ba)return 11;if(a===Ea)return 14}return 2}\nfunction mh(a,b){var c=a.alternate;null===c?(c=ah(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction oh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case va:return qh(c.children,e,f,b);case wa:g=8;e|=8;break;case xa:return a=ah(12,c,b,e|2),a.elementType=xa,a.lanes=f,a;case Ca:return a=ah(13,c,b,e),a.elementType=Ca,a.lanes=f,a;case Da:return a=ah(19,c,b,e),a.elementType=Da,a.lanes=f,a;case Ga:return nj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case Aa:g=9;break a;case Ba:g=11;\nbreak a;case Ea:g=14;break a;case Fa:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=ah(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function qh(a,b,c,d){a=ah(7,a,d,b);a.lanes=c;return a}function nj(a,b,c,d){a=ah(22,a,d,b);a.elementType=Ga;a.lanes=c;a.stateNode={};return a}function nh(a,b,c){a=ah(6,a,null,b);a.lanes=c;return a}\nfunction ph(a,b,c){b=ah(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction Rk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=vc(0);this.expirationTimes=vc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=vc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function Sk(a,b,c,d,e,f,g,h,k){a=new Rk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=ah(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null};sg(f);return a}function Tk(a,b,c){var d=3 result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","/*!\n* sweetalert2 v11.4.17\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\n */\n\n const uniqueArray = arr => {\n const result = [];\n\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * @param {NodeList | HTMLCollection | NamedNodeMap | DOMTokenList} nodeList\n * @returns {array}\n */\n\n const toArray = nodeList => Array.prototype.slice.call(nodeList);\n /**\n * Standardize console warnings\n * @param {string | array} message\n */\n\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardize console errors\n * @param {string} message\n */\n\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\n const previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n * @param {string} message\n */\n\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n */\n\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {string} paramName\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {string} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {string} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n const showWarningsForParams = params => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n for (const param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n const swalPrefix = 'swal2-';\n /**\n * @param {string[]} items\n * @returns {object}\n */\n\n const prefix = items => {\n const result = {};\n\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n /**\n * @returns {HTMLElement | null}\n */\n\n\n const getPopup = () => elementByClass(swalClasses.popup);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getIcon = () => elementByClass(swalClasses.icon);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTitle = () => elementByClass(swalClasses.title);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getImage = () => elementByClass(swalClasses.image);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getConfirmButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getDenyButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCancelButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getActions = () => elementByClass(swalClasses.actions);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getFooter = () => elementByClass(swalClasses.footer);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\n const focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n\n const getFocusableElements = () => {\n const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n\n return 0;\n });\n const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));\n };\n /**\n * @returns {boolean}\n */\n\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n /**\n * @returns {boolean}\n */\n\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n /**\n * @returns {boolean}\n */\n\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n const states = {\n previousBodyPadding: null\n };\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n toArray(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n toArray(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n\n const classList = className.split(/\\s+/);\n\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n\n const removeCustomClasses = (elem, params) => {\n toArray(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n\n\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\n\n const getInput = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n\n const focusInput = input => {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\n\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const getDirectChildByClass = (elem, className) => {\n const childNodes = toArray(elem.childNodes);\n\n for (let i = 0; i < childNodes.length; i++) {\n if (hasClass(childNodes[i], className)) {\n return childNodes[i];\n }\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\n\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n /**\n * @param {HTMLElement} elem\n */\n\n const hide = elem => {\n elem.style.display = 'none';\n };\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n /**\n * @returns {boolean}\n */\n\n const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n /**\n * @returns {boolean}\n */\n\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const sweetHTML = \"\\n
\\n \\n
    \\n
    \\n \\n

    \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\").replace(/(^|\\n)\\s*/g, '');\n /**\n * @returns {boolean}\n */\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n\n range.onchange = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n };\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n /**\n * @param {HTMLElement} targetElement\n */\n\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n noWarMessageForRussians(container, params);\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions} params\n */\n\n const noWarMessageForRussians = (container, params) => {\n if (params.toast) {\n return;\n } // This message is targeted at people who are corrupted by propaganda, everybody else\n // is already against war either silently or actively.\n //\n // The point is to wrap the truth-bomb into a patriotic title so they will actually click it\n // and listen to the uncomfortable truth about the war from the people they love or respect.\n\n\n const message = getRandomElement([{\n text: 'ШВАРЦЕНЕГГЕР обратился
    к РУССКОМУ НАРОДУ о войне',\n // Arnold is loved in Russia by all people including those who are for this war\n // His speech might change the mind of those who are brainwashed by propaganda\n youtubeId: 'fWClXZd9c78'\n }, {\n text: 'РУССКИЙ ПАТРИОТ
    открыл главную тайну спецоперации',\n // In this video one of the most famous Russian nationalist leaders, Dmitry Demushkin,\n // explains that this war has no sense and produces the exact opposite result of what\n // it was intended to do.\n youtubeId: '_RjBNkn88yA'\n }, {\n text: 'ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
    дал оценку ходу спецоперации',\n // In this video Igor Girkin, who played a key role in the annexation of Crimea,\n // explains that this war has failed already and all possible outcomes are bad for Russia.\n youtubeId: 'yUmzQT4C8JY'\n }, {\n text: 'ФИНСКИЙ ДРУГ РОССИИ
    говорит ПО-РУССКИ о спецоперации',\n youtubeId: 'hkCYb6edUrQ'\n }, {\n text: 'ЮРИЙ ПОДОЛЯКА честно
    о генералах РУССКОЙ АРМИИ',\n youtubeId: 'w4-_8BJKfpk'\n }, {\n text: 'Полковник ФСБ СТРЕЛКОВ
    об успехах РОССИИ в спецоперации',\n youtubeId: 'saK5UTKroDA'\n }]); // The message will only be shown to Russian users visiting Russian sites\n\n if (navigator.language === 'ru' && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n const noWar = document.createElement('div');\n noWar.className = swalClasses['no-war'];\n setInnerHtml(noWar, \"\").concat(message.text, \"\"));\n container.appendChild(noWar);\n container.style.paddingTop = '4em';\n }\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n } // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n } // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n } // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n /**\n * @param {HTMLElement} target\n * @param {HTMLElement} elem\n */\n\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n // Chrome, Safari and Opera\n animation: 'animationend' // Standard syntax\n\n };\n\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n })();\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render all the buttons\n\n renderButtons(actions, loader, params); // Loader\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// \n /** @type {InputClass[]} */\n\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes\n\n setAttributes(inputClass, params.inputAttributes); // set class\n\n inputContainer.className = swalClasses[inputClass];\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n /**\n * @param {HTMLInputElement} input\n */\n\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n\n\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput(getPopup(), inputClass);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n\n\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n\n\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof inputValue, \"\\\"\"));\n }\n };\n /** @type Record Input> */\n\n\n const renderInputType = {};\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n\n\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291\n\n\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n } // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n } // No content\n else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgroundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const successIconHtml = \"\\n
    \\n \\n
    \\n
    \\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const setContent = (icon, params) => {\n let oldContent = icon.innerHTML;\n let newContent;\n\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n /**\n * @param {string} content\n * @returns {string}\n */\n\n\n const iconContent = content => \"
    \").concat(content, \"
    \");\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n\n return lineEl;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Color\n\n if (params.color) {\n popup.style.color = params.color;\n } // Background\n\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n const getSwalParams = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalInput = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n\n const inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n if (inputOptions.length) {\n result.inputOptions = {};\n toArray(inputOptions).forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n */\n\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement} */\n\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n toArray(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n toArray(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
    in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
    ');\n }\n\n init(params);\n }\n\n class Timer {\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n\n stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\n\n const addBottomPaddingForTallPopups = () => {\n const ua = navigator.userAgent;\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\n const webkit = !!ua.match(/WebKit/i);\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i);\n\n if (iOSSafari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n\n\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n\n\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n /**\n * @param {GlobalState} globalState\n */\n\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {number} index\n * @param {number} increment\n */\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {function} dismissWith\n */\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n } // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n\n\n if (e.isComposing || e.keyCode === 229) {\n return;\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams);\n } // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams);\n } // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key);\n } // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleEnter = (instance, e, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n } // Cycle to the next button\n\n\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1);\n } // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n /**\n * @param {string} key\n */\n\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n\n for (let i = 0; i < getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n\n if (!buttonToFocus) {\n return;\n }\n\n if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) {\n break;\n }\n }\n\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n\n if (this.isAwaitingPromise()) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this);\n }\n\n const triggerClosePopup = instance => {\n const popup = getPopup();\n\n if (!popup) {\n return false;\n }\n\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n const filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n /**\n * @param {SweetAlert2} instance\n */\n\n const disposeSwal = instance => {\n disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset currentInstance\n\n delete globalState.currentInstance;\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n\n const disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n // @ts-ignore\n if (instance.isAwaitingPromise()) {\n unsetWeakMaps(privateProps, instance);\n privateProps.awaitingPromise.set(instance, true);\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n }\n };\n /**\n * @param {object} obj\n * @param {SweetAlert2} instance\n */\n\n\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n isAwaitingPromise: isAwaitingPromise,\n rejectPromise: rejectPromise,\n handleAwaitingPromise: handleAwaitingPromise,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n update: update,\n _destroy: _destroy\n });\n\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n const handleConfirmOrDenyWithInput = (instance, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n return error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n }\n\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n const handleInputValidator = (instance, inputValue, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.closePopup({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n instance.closePopup({\n isDenied: true,\n value\n });\n }\n };\n\n const succeedWith = (instance, value) => {\n instance.closePopup({\n isConfirmed: true,\n value\n });\n };\n\n const rejectWith = (instance, error$$1) => {\n instance.rejectPromise(error$$1);\n };\n\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n succeedWith(instance, value);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n /**\n * @param {*} innerParams\n * @returns {boolean}\n */\n\n\n const isAnyButtonShown = innerParams => {\n return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n const argsToParams = args => {\n const params = {};\n\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(typeof arg));\n }\n });\n }\n\n return params;\n };\n\n function fire() {\n const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Swal(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n\n }\n\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const increaseTimer = n => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n let currentInstance;\n\n class SweetAlert {\n constructor() {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this; // @ts-ignore\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n }); // @ts-ignore\n\n const promise = currentInstance._main(currentInstance.params);\n\n privateProps.promise.set(this, promise);\n }\n\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n // @ts-ignore\n globalState.currentInstance._destroy();\n\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n then(onFulfilled) {\n const promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this);\n return promise.finally(onFinally);\n }\n\n }\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n /**\n * @param {SweetAlert2} instance\n * @returns {DomCache}\n */\n\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n }; // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.17';\n\n const Swal = SweetAlert; // @ts-ignore\n\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import getTime from \"../getTime/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getUnixTime\n * @category Timestamp Helpers\n * @summary Get the seconds timestamp of the given date.\n *\n * @description\n * Get the seconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05 CET:\n * const result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 1330512305\n */\n\nexport default function getUnixTime(dirtyDate) {\n requiredArgs(1, arguments);\n return Math.floor(getTime(dirtyDate) / 1000);\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: \n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n */\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const includeImageAlt = (options || {}).includeImageAlt\n return one(\n value,\n typeof includeImageAlt === 'boolean' ? includeImageAlt : true\n )\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt) {\n return (\n (node(value) &&\n (('value' in value && value.value) ||\n (includeImageAlt && 'alt' in value && value.alt) ||\n ('children' in value && all(value.children, includeImageAlt)))) ||\n (Array.isArray(value) && all(value, includeImageAlt)) ||\n ''\n )\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n\n const columnStart = {}\n /** @type {Array} */\n\n const resolveAllConstructs = []\n /** @type {Array} */\n\n let chunks = []\n /** @type {Array} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Array|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\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 */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * .\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n /** @type {State} */\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n /** @type {State} */\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n /** @type {State} */\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n // @ts-expect-error: micromark types need to accept `null`.\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n // @ts-expect-error Patched.\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array} events\n * @returns {Array}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, a regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`,\n * or `/^https?$/i` for `img[src]`.\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n\n let replace = '' // A correct percent encoded value.\n\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n } // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n } // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n } // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n } // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
    `. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
    `\n cellSpacing: null, // `
    `\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
    `. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
    `. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `