@evercam/ui 0.0.38 → 0.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/types.ts","../src/components/EBadge.vue?vue&type=script&lang.ts","../src/components/EAvatar.vue?vue&type=script&lang.ts","../node_modules/tailwindcss/lib/util/negateValue.js","../node_modules/tailwindcss/lib/corePluginList.js","../node_modules/tailwindcss/lib/util/configurePlugins.js","../node_modules/picocolors/picocolors.browser.js","../node_modules/tailwindcss/lib/util/log.js","../node_modules/tailwindcss/lib/public/colors.js","../node_modules/tailwindcss/lib/util/defaults.js","../node_modules/tailwindcss/lib/util/toPath.js","../node_modules/tailwindcss/lib/featureFlags.js","../node_modules/tailwindcss/lib/util/normalizeConfig.js","../node_modules/tailwindcss/lib/util/isPlainObject.js","../node_modules/tailwindcss/lib/util/cloneDeep.js","../node_modules/tailwindcss/lib/util/escapeCommas.js","../node_modules/tailwindcss/lib/util/colorNames.js","../node_modules/tailwindcss/lib/util/color.js","../node_modules/tailwindcss/lib/util/withAlphaVariable.js","../node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","../node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","../node_modules/tailwindcss/lib/util/dataTypes.js","../node_modules/tailwindcss/lib/util/validateFormalSyntax.js","../node_modules/tailwindcss/lib/util/pluginUtils.js","../node_modules/tailwindcss/lib/util/toColorValue.js","../node_modules/tailwindcss/lib/util/resolveConfig.js","../node_modules/tailwindcss/stubs/config.full.js","../node_modules/tailwindcss/lib/util/getAllConfigs.js","../node_modules/tailwindcss/lib/public/resolve-config.js","../node_modules/tailwindcss/resolveConfig.js","../node_modules/tailwindcss/colors.js","../config.ts","../src/constants.ts","../src/components/EIcon.vue?vue&type=script&lang.ts","../src/components/ESpinner.vue?vue&type=script&lang.ts","../src/components/ERow.vue?vue&type=script&lang.ts","../src/components/ECol.vue?vue&type=script&lang.ts","../src/utils.ts","../src/components/EVideoPlayer.vue?vue&type=script&lang.ts","../src/components/ETimeline.config.ts","../src/directives/resize-observer.ts","../src/directives/index.ts","../node_modules/moment/dist/moment.js","../node_modules/moment-timezone/moment-timezone.js","../node_modules/moment-timezone/index.js","../src/components/ETimeline.vue?vue&type=script&lang.ts","../src/index.ts"],"sourcesContent":["import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from \"@/constants\"\n\nexport enum Size {\n dot = \"dot\",\n xs = \"xs\",\n sm = \"sm\",\n md = \"base\",\n base = \"base\",\n lg = \"lg\",\n xl = \"xl\",\n \"2xl\" = \"2xl\",\n \"3xl\" = \"3xl\",\n \"4xl\" = \"4xl\",\n \"5xl\" = \"5xl\",\n \"6xl\" = \"6xl\",\n \"7xl\" = \"7xl\",\n \"8xl\" = \"8xl\",\n \"9xl\" = \"9xl\",\n}\n\nexport enum BaseColor {\n warning = \"warning\",\n error = \"error\",\n info = \"info\",\n success = \"success\",\n primary = \"primary\",\n brand = \"brand\",\n default = \"default\",\n}\n\nexport type TBadgeSize = (typeof BadgeSizes)[number]\n\nexport type TAvatarSize = (typeof AvatarSizes)[number]\n\nexport type TIconSize = (typeof IconSizes)[number]\n\nexport type TBadgeColor = (typeof BadgeColors)[number]\n\nexport type TailwindColorClass = string\n\nexport type FlexJustifyContent =\n | \"around\"\n | \"between\"\n | \"center\"\n | \"end\"\n | \"evenly\"\n | \"normal\"\n | \"start\"\n | \"stretch\"\n\nexport type FlexAlignItems = \"start\" | \"center\" | \"end\" | \"baseline\" | \"stretch\"\n\nexport type FlexAlignContent =\n | \"around\"\n | \"baseline\"\n | \"between\"\n | \"center\"\n | \"end\"\n | \"evenly\"\n | \"normal\"\n | \"start\"\n | \"stretch\"\n\nexport type FlexAlignSelf =\n | \"auto\"\n | \"baseline\"\n | \"center\"\n | \"end\"\n | \"start\"\n | \"stretch\"\n\nexport enum TimelineAxis {\n overview = \"overview\",\n detailed = \"detailed\",\n detailedBackground = \"detailedBackground\",\n}\n\nexport type TimelineTicksConfig = {\n precision: number\n interval: any\n format: string | ((d: Date) => string)\n}\n\nexport type TimelineAxesConfig = {\n [key in TimelineAxis]: TimelineTicksConfig[]\n}\n\nexport type Timestamp = Date | string | number\n\nexport default {}\n","\nimport Vue, { PropType } from \"vue\"\nimport { BaseColor, Size, TBadgeColor, TBadgeSize } from \"@/types\"\n\nexport default Vue.extend({\n name: \"EBadge\",\n props: {\n text: {\n type: String,\n default: \"\",\n },\n color: {\n type: String as PropType<TBadgeColor>,\n default: BaseColor.default,\n },\n size: {\n type: String as PropType<TBadgeSize>,\n default: Size.base,\n },\n },\n data() {\n return {\n colors: {\n [BaseColor.error]: \"e-bg-rose-500 e-text-white\",\n [BaseColor.info]: \"e-bg-cyan-500 e-text-white\",\n [BaseColor.warning]: \"e-bg-amber-500 e-text-white\",\n [BaseColor.primary]: \"e-bg-sky-500 e-text-white\",\n [BaseColor.default]: \"e-bg-slate-300 e-text-white\",\n [BaseColor.success]: \"e-bg-lime-500 e-text-white\",\n },\n sizes: {\n [Size.dot]: \"e-w-2 e-h-2\",\n [Size.xs]: \"e-w-3 e-h-3\",\n [Size.sm]: \"e-w-4 e-h-4\",\n [Size.md]: \"e-w-5 e-h-5\",\n [Size.lg]:\n \"e-min-w-[2rem] e-max-w-[4rem] e-px-1 e-h-6 e-text-sm e-font-medium\",\n [Size.xl]:\n \"e-min-w-[3rem] e-max-w-[5rem] e-px-1 e-h-8 e-text-base e-font-medium\",\n },\n }\n },\n computed: {\n badgeClasses(): string[] {\n const colorClasses =\n this.colors[this.color] || this.colors[BaseColor.default]\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.md]\n\n return [\n \"e-flex e-items-center e-justify-center e-rounded-full\",\n colorClasses,\n sizeClasses,\n ]\n },\n showText(): boolean {\n return [Size.lg, Size.xl].includes(this.size)\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport Badge from \"@/components/EBadge.vue\"\nimport { BaseColor, Size, TAvatarSize, TBadgeColor, TBadgeSize } from \"@/types\"\n\nexport default Vue.extend({\n name: \"EAvatar\",\n components: {\n Badge,\n },\n props: {\n size: {\n type: String as PropType<TAvatarSize>,\n default: Size.md,\n },\n showBadge: {\n type: Boolean,\n default: false,\n },\n badgeColor: {\n type: String as PropType<TBadgeColor>,\n default: BaseColor.error,\n },\n badgeText: {\n type: String,\n default: \"\",\n },\n badgeSize: {\n type: String as PropType<TBadgeSize>,\n default: Size.md,\n },\n image: {\n type: String,\n default: \"\",\n },\n },\n data() {\n return {\n sizes: {\n [Size.xs]: \"e-w-8 e-h-8 e-text-xs\",\n [Size.sm]: \"e-w-10 e-h-10 e-text-sm\",\n [Size.md]: \"e-w-14 e-h-14 e-text-base\",\n [Size.lg]: \"e-w-20 e-h-20 e-text-2xl\",\n [Size.xl]: \"e-w-28 e-h-28 e-text-3xl\",\n [Size[\"2xl\"]]: \"e-w-36 e-h-36 e-text-5xl\",\n },\n }\n },\n computed: {\n avatarClasses(): string[] {\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.xs]\n\n return [\n \"e-flex e-items-center e-justify-center e-rounded-full e-bg-purple-500 e-text-white e-font-medium\",\n sizeClasses,\n ]\n },\n },\n})\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return negateValue;\n }\n});\nfunction negateValue(value) {\n value = `${value}`;\n if (value === \"0\") {\n return \"0\";\n }\n // Flip sign of numbers\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value)) {\n return value.replace(/^[+-]?/, (sign)=>sign === \"-\" ? \"\" : \"-\");\n }\n // What functions we support negating numeric values for\n // var() isn't inherently a numeric function but we support it anyway\n // The trigonometric functions are omitted because you'll need to use calc(…) with them _anyway_\n // to produce generally useful results and that will be covered already\n let numericFunctions = [\n \"var\",\n \"calc\",\n \"min\",\n \"max\",\n \"clamp\"\n ];\n for (const fn of numericFunctions){\n if (value.includes(`${fn}(`)) {\n return `calc(${value} * -1)`;\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"lineClamp\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"captionSide\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"listStyleImage\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"hyphens\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction _default(pluginConfig, plugins) {\n if (pluginConfig === undefined) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(plugins.filter((pluginName)=>{\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(Object.keys(pluginConfig).filter((pluginName)=>{\n return pluginConfig[pluginName] !== false;\n })))\n ];\n return pluginNames;\n}\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dim: function() {\n return dim;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (typeof process !== \"undefined\" && process.env.JEST_WORKER_ID) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message));\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nconst _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"../util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: function() {\n return defaults;\n }\n});\nfunction defaults(target, ...sources) {\n for (let source of sources){\n for(let k in source){\n var _target_hasOwnProperty;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty = target.hasOwnProperty) === null || _target_hasOwnProperty === void 0 ? void 0 : _target_hasOwnProperty.call(target, k))) {\n target[k] = source[k];\n }\n }\n for (let k of Object.getOwnPropertySymbols(source)){\n var _target_hasOwnProperty1;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty1 = target.hasOwnProperty) === null || _target_hasOwnProperty1 === void 0 ? void 0 : _target_hasOwnProperty1.call(target, k))) {\n target[k] = source[k];\n }\n }\n }\n return target;\n}\n","/**\n * Parse a path string into an array of path segments.\n *\n * Square bracket notation `a[b]` may be used to \"escape\" dots that would otherwise be interpreted as path separators.\n *\n * Example:\n * a -> ['a']\n * a.b.c -> ['a', 'b', 'c']\n * a[b].c -> ['a', 'b', 'c']\n * a[b.c].e.f -> ['a', 'b.c', 'e', 'f']\n * a[b][c][d] -> ['a', 'b', 'c', 'd']\n *\n * @param {string|string[]} path\n **/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toPath\", {\n enumerable: true,\n get: function() {\n return toPath;\n }\n});\nfunction toPath(path) {\n if (Array.isArray(path)) return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n flagEnabled: function() {\n return flagEnabled;\n },\n issueFlagNotices: function() {\n return issueFlagNotices;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"./util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet defaults = {\n optimizeUniversalDefaults: false,\n generalizedModifiers: true,\n get disableColorOpacityUtilitiesByDefault () {\n return false;\n },\n get relativeContentPathsByDefault () {\n return false;\n }\n};\nlet featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\",\n \"disableColorOpacityUtilitiesByDefault\",\n \"relativeContentPathsByDefault\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"generalizedModifiers\"\n ]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n var _config_future;\n var _config_future_flag, _ref;\n return config.future === \"all\" || ((_ref = (_config_future_flag = config === null || config === void 0 ? void 0 : (_config_future = config.future) === null || _config_future === void 0 ? void 0 : _config_future[flag]) !== null && _config_future_flag !== void 0 ? _config_future_flag : defaults[flag]) !== null && _ref !== void 0 ? _ref : false);\n }\n if (featureFlags.experimental.includes(flag)) {\n var _config_experimental;\n var _config_experimental_flag, _ref1;\n return config.experimental === \"all\" || ((_ref1 = (_config_experimental_flag = config === null || config === void 0 ? void 0 : (_config_experimental = config.experimental) === null || _config_experimental === void 0 ? void 0 : _config_experimental[flag]) !== null && _config_experimental_flag !== void 0 ? _config_experimental_flag : defaults[flag]) !== null && _ref1 !== void 0 ? _ref1 : false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n var _config_experimental;\n return Object.keys((_config_experimental = config === null || config === void 0 ? void 0 : config.experimental) !== null && _config_experimental !== void 0 ? _config_experimental : {}).filter((flag)=>featureFlags.experimental.includes(flag) && config.experimental[flag]);\n}\nfunction issueFlagNotices(config) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s)=>_picocolors.default.yellow(s)).join(\", \");\n _log.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\"\n ]);\n }\n}\nconst _default = featureFlags;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeConfig\", {\n enumerable: true,\n get: function() {\n return normalizeConfig;\n }\n});\nconst _featureFlags = require(\"../featureFlags\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(require(\"./log\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction normalizeConfig(config) {\n // Quick structure validation\n /**\n * type FilePath = string\n * type RawFile = { raw: string, extension?: string }\n * type ExtractorFn = (content: string) => Array<string>\n * type TransformerFn = (content: string) => string\n *\n * type Content =\n * | Array<FilePath | RawFile>\n * | {\n * files: Array<FilePath | RawFile>,\n * extract?: ExtractorFn | { [extension: string]: ExtractorFn }\n * transform?: TransformerFn | { [extension: string]: TransformerFn }\n * }\n */ let valid = (()=>{\n // `config.purge` should not exist anymore\n if (config.purge) {\n return false;\n }\n // `config.content` should exist\n if (!config.content) {\n return false;\n }\n // `config.content` should be an object or an array\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n // When `config.content` is an array, it should consist of FilePaths or RawFiles\n if (Array.isArray(config.content)) {\n return config.content.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n });\n }\n // When `config.content` is an object\n if (typeof config.content === \"object\" && config.content !== null) {\n // Only `files`, `relative`, `extract`, and `transform` can exist in `config.content`\n if (Object.keys(config.content).some((key)=>![\n \"files\",\n \"relative\",\n \"extract\",\n \"transform\"\n ].includes(key))) {\n return false;\n }\n // `config.content.files` should exist of FilePaths or RawFiles\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n // `config.content.extract` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.extract === \"object\") {\n for (let value of Object.values(config.content.extract)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === undefined || typeof config.content.extract === \"function\")) {\n return false;\n }\n // `config.content.transform` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.transform === \"object\") {\n for (let value of Object.values(config.content.transform)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === undefined || typeof config.content.transform === \"function\")) {\n return false;\n }\n // `config.content.relative` is optional and can be a boolean\n if (typeof config.content.relative !== \"boolean\" && typeof config.content.relative !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n _log.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\"\n ]);\n }\n // Normalize the `safelist`\n config.safelist = (()=>{\n var _purge_options;\n let { content , purge , safelist } = config;\n if (Array.isArray(safelist)) return safelist;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : (_purge_options = purge.options) === null || _purge_options === void 0 ? void 0 : _purge_options.safelist)) return purge.options.safelist;\n return [];\n })();\n // Normalize the `blocklist`\n config.blocklist = (()=>{\n let { blocklist } = config;\n if (Array.isArray(blocklist)) {\n if (blocklist.every((item)=>typeof item === \"string\")) {\n return blocklist;\n }\n _log.default.warn(\"blocklist-invalid\", [\n \"The `blocklist` option must be an array of strings.\",\n \"https://tailwindcss.com/docs/content-configuration#discarding-classes\"\n ]);\n }\n return [];\n })();\n // Normalize prefix option\n if (typeof config.prefix === \"function\") {\n _log.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\"\n ]);\n config.prefix = \"\";\n } else {\n var _config_prefix;\n config.prefix = (_config_prefix = config.prefix) !== null && _config_prefix !== void 0 ? _config_prefix : \"\";\n }\n // Normalize the `content`\n config.content = {\n relative: (()=>{\n let { content } = config;\n if (content === null || content === void 0 ? void 0 : content.relative) {\n return content.relative;\n }\n return (0, _featureFlags.flagEnabled)(config, \"relativeContentPathsByDefault\");\n })(),\n files: (()=>{\n let { content , purge } = config;\n if (Array.isArray(purge)) return purge;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.content)) return purge.content;\n if (Array.isArray(content)) return content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.content)) return content.content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.files)) return content.files;\n return [];\n })(),\n extract: (()=>{\n let extract = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_extract, _config_content1, _config_content_extract, _config_purge2, _config_purge_options, _config_content2, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.extract) return config.purge.extract;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.extract) return config.content.extract;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_extract = _config_purge1.extract) === null || _config_purge_extract === void 0 ? void 0 : _config_purge_extract.DEFAULT) return config.purge.extract.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_extract = _config_content1.extract) === null || _config_content_extract === void 0 ? void 0 : _config_content_extract.DEFAULT) return config.content.extract.DEFAULT;\n if ((_config_purge2 = config.purge) === null || _config_purge2 === void 0 ? void 0 : (_config_purge_options = _config_purge2.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.extractors) return config.purge.options.extractors;\n if ((_config_content2 = config.content) === null || _config_content2 === void 0 ? void 0 : (_config_content_options = _config_content2.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.extractors) return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor = (()=>{\n var _config_purge, _config_purge_options, _config_content, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : (_config_purge_options = _config_purge.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : (_config_content_options = _config_content.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return undefined;\n })();\n if (defaultExtractor !== undefined) {\n extractors.DEFAULT = defaultExtractor;\n }\n // Functions\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){\n for (let extension of extensions){\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (()=>{\n let transform = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_transform, _config_content1, _config_content_transform;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.transform) return config.purge.transform;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.transform) return config.content.transform;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_transform = _config_purge1.transform) === null || _config_purge_transform === void 0 ? void 0 : _config_purge_transform.DEFAULT) return config.purge.transform.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_transform = _config_content1.transform) === null || _config_content_transform === void 0 ? void 0 : _config_content_transform.DEFAULT) return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n // Validate globs to prevent bogus globs.\n // E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`\n for (let file of config.content.files){\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n _log.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return isPlainObject;\n }\n});\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: function() {\n return cloneDeep;\n }\n});\nfunction cloneDeep(value) {\n if (Array.isArray(value)) {\n return value.map((child)=>cloneDeep(child));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(Object.entries(value).map(([k, v])=>[\n k,\n cloneDeep(v)\n ]));\n }\n return value;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return escapeCommas;\n }\n});\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = {\n aliceblue: [\n 240,\n 248,\n 255\n ],\n antiquewhite: [\n 250,\n 235,\n 215\n ],\n aqua: [\n 0,\n 255,\n 255\n ],\n aquamarine: [\n 127,\n 255,\n 212\n ],\n azure: [\n 240,\n 255,\n 255\n ],\n beige: [\n 245,\n 245,\n 220\n ],\n bisque: [\n 255,\n 228,\n 196\n ],\n black: [\n 0,\n 0,\n 0\n ],\n blanchedalmond: [\n 255,\n 235,\n 205\n ],\n blue: [\n 0,\n 0,\n 255\n ],\n blueviolet: [\n 138,\n 43,\n 226\n ],\n brown: [\n 165,\n 42,\n 42\n ],\n burlywood: [\n 222,\n 184,\n 135\n ],\n cadetblue: [\n 95,\n 158,\n 160\n ],\n chartreuse: [\n 127,\n 255,\n 0\n ],\n chocolate: [\n 210,\n 105,\n 30\n ],\n coral: [\n 255,\n 127,\n 80\n ],\n cornflowerblue: [\n 100,\n 149,\n 237\n ],\n cornsilk: [\n 255,\n 248,\n 220\n ],\n crimson: [\n 220,\n 20,\n 60\n ],\n cyan: [\n 0,\n 255,\n 255\n ],\n darkblue: [\n 0,\n 0,\n 139\n ],\n darkcyan: [\n 0,\n 139,\n 139\n ],\n darkgoldenrod: [\n 184,\n 134,\n 11\n ],\n darkgray: [\n 169,\n 169,\n 169\n ],\n darkgreen: [\n 0,\n 100,\n 0\n ],\n darkgrey: [\n 169,\n 169,\n 169\n ],\n darkkhaki: [\n 189,\n 183,\n 107\n ],\n darkmagenta: [\n 139,\n 0,\n 139\n ],\n darkolivegreen: [\n 85,\n 107,\n 47\n ],\n darkorange: [\n 255,\n 140,\n 0\n ],\n darkorchid: [\n 153,\n 50,\n 204\n ],\n darkred: [\n 139,\n 0,\n 0\n ],\n darksalmon: [\n 233,\n 150,\n 122\n ],\n darkseagreen: [\n 143,\n 188,\n 143\n ],\n darkslateblue: [\n 72,\n 61,\n 139\n ],\n darkslategray: [\n 47,\n 79,\n 79\n ],\n darkslategrey: [\n 47,\n 79,\n 79\n ],\n darkturquoise: [\n 0,\n 206,\n 209\n ],\n darkviolet: [\n 148,\n 0,\n 211\n ],\n deeppink: [\n 255,\n 20,\n 147\n ],\n deepskyblue: [\n 0,\n 191,\n 255\n ],\n dimgray: [\n 105,\n 105,\n 105\n ],\n dimgrey: [\n 105,\n 105,\n 105\n ],\n dodgerblue: [\n 30,\n 144,\n 255\n ],\n firebrick: [\n 178,\n 34,\n 34\n ],\n floralwhite: [\n 255,\n 250,\n 240\n ],\n forestgreen: [\n 34,\n 139,\n 34\n ],\n fuchsia: [\n 255,\n 0,\n 255\n ],\n gainsboro: [\n 220,\n 220,\n 220\n ],\n ghostwhite: [\n 248,\n 248,\n 255\n ],\n gold: [\n 255,\n 215,\n 0\n ],\n goldenrod: [\n 218,\n 165,\n 32\n ],\n gray: [\n 128,\n 128,\n 128\n ],\n green: [\n 0,\n 128,\n 0\n ],\n greenyellow: [\n 173,\n 255,\n 47\n ],\n grey: [\n 128,\n 128,\n 128\n ],\n honeydew: [\n 240,\n 255,\n 240\n ],\n hotpink: [\n 255,\n 105,\n 180\n ],\n indianred: [\n 205,\n 92,\n 92\n ],\n indigo: [\n 75,\n 0,\n 130\n ],\n ivory: [\n 255,\n 255,\n 240\n ],\n khaki: [\n 240,\n 230,\n 140\n ],\n lavender: [\n 230,\n 230,\n 250\n ],\n lavenderblush: [\n 255,\n 240,\n 245\n ],\n lawngreen: [\n 124,\n 252,\n 0\n ],\n lemonchiffon: [\n 255,\n 250,\n 205\n ],\n lightblue: [\n 173,\n 216,\n 230\n ],\n lightcoral: [\n 240,\n 128,\n 128\n ],\n lightcyan: [\n 224,\n 255,\n 255\n ],\n lightgoldenrodyellow: [\n 250,\n 250,\n 210\n ],\n lightgray: [\n 211,\n 211,\n 211\n ],\n lightgreen: [\n 144,\n 238,\n 144\n ],\n lightgrey: [\n 211,\n 211,\n 211\n ],\n lightpink: [\n 255,\n 182,\n 193\n ],\n lightsalmon: [\n 255,\n 160,\n 122\n ],\n lightseagreen: [\n 32,\n 178,\n 170\n ],\n lightskyblue: [\n 135,\n 206,\n 250\n ],\n lightslategray: [\n 119,\n 136,\n 153\n ],\n lightslategrey: [\n 119,\n 136,\n 153\n ],\n lightsteelblue: [\n 176,\n 196,\n 222\n ],\n lightyellow: [\n 255,\n 255,\n 224\n ],\n lime: [\n 0,\n 255,\n 0\n ],\n limegreen: [\n 50,\n 205,\n 50\n ],\n linen: [\n 250,\n 240,\n 230\n ],\n magenta: [\n 255,\n 0,\n 255\n ],\n maroon: [\n 128,\n 0,\n 0\n ],\n mediumaquamarine: [\n 102,\n 205,\n 170\n ],\n mediumblue: [\n 0,\n 0,\n 205\n ],\n mediumorchid: [\n 186,\n 85,\n 211\n ],\n mediumpurple: [\n 147,\n 112,\n 219\n ],\n mediumseagreen: [\n 60,\n 179,\n 113\n ],\n mediumslateblue: [\n 123,\n 104,\n 238\n ],\n mediumspringgreen: [\n 0,\n 250,\n 154\n ],\n mediumturquoise: [\n 72,\n 209,\n 204\n ],\n mediumvioletred: [\n 199,\n 21,\n 133\n ],\n midnightblue: [\n 25,\n 25,\n 112\n ],\n mintcream: [\n 245,\n 255,\n 250\n ],\n mistyrose: [\n 255,\n 228,\n 225\n ],\n moccasin: [\n 255,\n 228,\n 181\n ],\n navajowhite: [\n 255,\n 222,\n 173\n ],\n navy: [\n 0,\n 0,\n 128\n ],\n oldlace: [\n 253,\n 245,\n 230\n ],\n olive: [\n 128,\n 128,\n 0\n ],\n olivedrab: [\n 107,\n 142,\n 35\n ],\n orange: [\n 255,\n 165,\n 0\n ],\n orangered: [\n 255,\n 69,\n 0\n ],\n orchid: [\n 218,\n 112,\n 214\n ],\n palegoldenrod: [\n 238,\n 232,\n 170\n ],\n palegreen: [\n 152,\n 251,\n 152\n ],\n paleturquoise: [\n 175,\n 238,\n 238\n ],\n palevioletred: [\n 219,\n 112,\n 147\n ],\n papayawhip: [\n 255,\n 239,\n 213\n ],\n peachpuff: [\n 255,\n 218,\n 185\n ],\n peru: [\n 205,\n 133,\n 63\n ],\n pink: [\n 255,\n 192,\n 203\n ],\n plum: [\n 221,\n 160,\n 221\n ],\n powderblue: [\n 176,\n 224,\n 230\n ],\n purple: [\n 128,\n 0,\n 128\n ],\n rebeccapurple: [\n 102,\n 51,\n 153\n ],\n red: [\n 255,\n 0,\n 0\n ],\n rosybrown: [\n 188,\n 143,\n 143\n ],\n royalblue: [\n 65,\n 105,\n 225\n ],\n saddlebrown: [\n 139,\n 69,\n 19\n ],\n salmon: [\n 250,\n 128,\n 114\n ],\n sandybrown: [\n 244,\n 164,\n 96\n ],\n seagreen: [\n 46,\n 139,\n 87\n ],\n seashell: [\n 255,\n 245,\n 238\n ],\n sienna: [\n 160,\n 82,\n 45\n ],\n silver: [\n 192,\n 192,\n 192\n ],\n skyblue: [\n 135,\n 206,\n 235\n ],\n slateblue: [\n 106,\n 90,\n 205\n ],\n slategray: [\n 112,\n 128,\n 144\n ],\n slategrey: [\n 112,\n 128,\n 144\n ],\n snow: [\n 255,\n 250,\n 250\n ],\n springgreen: [\n 0,\n 255,\n 127\n ],\n steelblue: [\n 70,\n 130,\n 180\n ],\n tan: [\n 210,\n 180,\n 140\n ],\n teal: [\n 0,\n 128,\n 128\n ],\n thistle: [\n 216,\n 191,\n 216\n ],\n tomato: [\n 255,\n 99,\n 71\n ],\n turquoise: [\n 64,\n 224,\n 208\n ],\n violet: [\n 238,\n 130,\n 238\n ],\n wheat: [\n 245,\n 222,\n 179\n ],\n white: [\n 255,\n 255,\n 255\n ],\n whitesmoke: [\n 245,\n 245,\n 245\n ],\n yellow: [\n 255,\n 255,\n 0\n ],\n yellowgreen: [\n 154,\n 205,\n 50\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseColor: function() {\n return parseColor;\n },\n formatColor: function() {\n return formatColor;\n }\n});\nconst _colorNames = /*#__PURE__*/ _interop_require_default(require(\"./colorNames\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nlet SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nlet VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nlet SEP = /(?:\\s*,\\s*|\\s+)/;\nlet ALPHA_SEP = /\\s*[,/]\\s*/;\nlet CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)\\)/;\nlet RGB = new RegExp(`^(rgba?)\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nlet HSL = new RegExp(`^(hsla?)\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nfunction parseColor(value, { loose =false } = {}) {\n var _match_, _match__toString;\n if (typeof value !== \"string\") {\n return null;\n }\n value = value.trim();\n if (value === \"transparent\") {\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n }\n if (value in _colorNames.default) {\n return {\n mode: \"rgb\",\n color: _colorNames.default[value].map((v)=>v.toString())\n };\n }\n let hex = value.replace(SHORT_HEX, (_, r, g, b, a)=>[\n \"#\",\n r,\n r,\n g,\n g,\n b,\n b,\n a ? a + a : \"\"\n ].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [\n parseInt(hex[1], 16),\n parseInt(hex[2], 16),\n parseInt(hex[3], 16)\n ].map((v)=>v.toString()),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : undefined\n };\n }\n var _value_match;\n let match = (_value_match = value.match(RGB)) !== null && _value_match !== void 0 ? _value_match : value.match(HSL);\n if (match === null) {\n return null;\n }\n let color = [\n match[2],\n match[3],\n match[4]\n ].filter(Boolean).map((v)=>v.toString());\n // rgba(var(--my-color), 0.1)\n // hsla(var(--my-color), 0.1)\n if (color.length === 2 && color[0].startsWith(\"var(\")) {\n return {\n mode: match[1],\n color: [\n color[0]\n ],\n alpha: color[1]\n };\n }\n if (!loose && color.length !== 3) {\n return null;\n }\n if (color.length < 3 && !color.some((part)=>/^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color,\n alpha: (_match_ = match[5]) === null || _match_ === void 0 ? void 0 : (_match__toString = _match_.toString) === null || _match__toString === void 0 ? void 0 : _match__toString.call(_match_)\n };\n}\nfunction formatColor({ mode , color , alpha }) {\n let hasAlpha = alpha !== undefined;\n if (mode === \"rgba\" || mode === \"hsla\") {\n return `${mode}(${color.join(\", \")}${hasAlpha ? `, ${alpha}` : \"\"})`;\n }\n return `${mode}(${color.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withAlphaValue: function() {\n return withAlphaValue;\n },\n default: function() {\n return withAlphaVariable;\n }\n});\nconst _color = require(\"./color\");\nfunction withAlphaValue(color, alphaValue, defaultValue) {\n if (typeof color === \"function\") {\n return color({\n opacityValue: alphaValue\n });\n }\n let parsed = (0, _color.parseColor)(color, {\n loose: true\n });\n if (parsed === null) {\n return defaultValue;\n }\n return (0, _color.formatColor)({\n ...parsed,\n alpha: alphaValue\n });\n}\nfunction withAlphaVariable({ color , property , variable }) {\n let properties = [].concat(property);\n if (typeof color === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`\n })\n ];\n }))\n };\n }\n const parsed = (0, _color.parseColor)(color);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n if (parsed.alpha !== undefined) {\n // Has an alpha value, return color as-is\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n (0, _color.formatColor)({\n ...parsed,\n alpha: `var(${variable})`\n })\n ];\n }))\n };\n}\n","/**\n * This splits a string on a top-level character.\n *\n * Regex doesn't support recursion (at least not the JS-flavored version).\n * So we have to use a tiny state machine to keep track of paren placement.\n *\n * Expected behavior using commas:\n * var(--a, 0 0 1px rgb(0, 0, 0)), 0 0 1px rgb(0, 0, 0)\n * ─┬─ ┬ ┬ ┬\n * x x x ╰──────── Split because top-level\n * ╰──────────────┴──┴───────────── Ignored b/c inside >= 1 levels of parens\n *\n * @param {string} input\n * @param {string} separator\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"splitAtTopLevelOnly\", {\n enumerable: true,\n get: function() {\n return splitAtTopLevelOnly;\n }\n});\nfunction splitAtTopLevelOnly(input, separator) {\n let stack = [];\n let parts = [];\n let lastPos = 0;\n let isEscaped = false;\n for(let idx = 0; idx < input.length; idx++){\n let char = input[idx];\n if (stack.length === 0 && char === separator[0] && !isEscaped) {\n if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {\n parts.push(input.slice(lastPos, idx));\n lastPos = idx + separator.length;\n }\n }\n if (isEscaped) {\n isEscaped = false;\n } else if (char === \"\\\\\") {\n isEscaped = true;\n }\n if (char === \"(\" || char === \"[\" || char === \"{\") {\n stack.push(char);\n } else if (char === \")\" && stack[stack.length - 1] === \"(\" || char === \"]\" && stack[stack.length - 1] === \"[\" || char === \"}\" && stack[stack.length - 1] === \"{\") {\n stack.pop();\n }\n }\n parts.push(input.slice(lastPos));\n return parts;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseBoxShadowValue: function() {\n return parseBoxShadowValue;\n },\n formatBoxShadowValue: function() {\n return formatBoxShadowValue;\n }\n});\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet KEYWORDS = new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nlet SPACE = /\\ +(?![^(]*\\))/g // Similar to the one above, but with spaces instead.\n;\nlet LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(input, \",\");\n return shadows.map((shadow)=>{\n let value = shadow.trim();\n let result = {\n raw: value\n };\n let parts = value.split(SPACE);\n let seen = new Set();\n for (let part of parts){\n // Reset index, since the regex is stateful.\n LENGTH.lastIndex = 0;\n // Keyword\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown) result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n // Check if valid\n result.valid = result.x !== undefined && result.y !== undefined;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow)=>{\n if (!shadow.valid) {\n return shadow.raw;\n }\n return [\n shadow.keyword,\n shadow.x,\n shadow.y,\n shadow.blur,\n shadow.spread,\n shadow.color\n ].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalize: function() {\n return normalize;\n },\n url: function() {\n return url;\n },\n number: function() {\n return number;\n },\n percentage: function() {\n return percentage;\n },\n length: function() {\n return length;\n },\n lineWidth: function() {\n return lineWidth;\n },\n shadow: function() {\n return shadow;\n },\n color: function() {\n return color;\n },\n image: function() {\n return image;\n },\n gradient: function() {\n return gradient;\n },\n position: function() {\n return position;\n },\n familyName: function() {\n return familyName;\n },\n genericName: function() {\n return genericName;\n },\n absoluteSize: function() {\n return absoluteSize;\n },\n relativeSize: function() {\n return relativeSize;\n }\n});\nconst _color = require(\"./color\");\nconst _parseBoxShadowValue = require(\"./parseBoxShadowValue\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet cssFunctions = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n];\n// Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types\nfunction isCSSFunction(value) {\n return cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.*\\\\)`).test(value));\n}\nconst placeholder = \"--tw-placeholder\";\nconst placeholderRe = new RegExp(placeholder, \"g\");\nfunction normalize(value, isRoot = true) {\n if (value.startsWith(\"--\")) {\n return `var(${value})`;\n }\n // Keep raw strings if it starts with `url(`\n if (value.includes(\"url(\")) {\n return value.split(/(url\\(.*?\\))/g).filter(Boolean).map((part)=>{\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, false);\n }).join(\"\");\n }\n // Convert `_` to ` `, except for escaped underscores `\\_`\n value = value.replace(/([^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + \" \".repeat(fullMatch.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n // Remove leftover whitespace\n if (isRoot) {\n value = value.trim();\n }\n value = normalizeMathOperatorSpacing(value);\n return value;\n}\n/**\n * Add spaces around operators inside math functions\n * like calc() that do not follow an operator or '('.\n *\n * @param {string} value\n * @returns {string}\n */ function normalizeMathOperatorSpacing(value) {\n return value.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>{\n let vars = [];\n return match.replace(/var\\((--.+?)[,)]/g, (match, g1)=>{\n vars.push(g1);\n return match.replace(g1, placeholder);\n }).replace(/(-?\\d*\\.?\\d(?!\\b-\\d.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \").replace(placeholderRe, ()=>vars.shift());\n });\n}\nfunction url(value) {\n return value.startsWith(\"url(\");\n}\nfunction number(value) {\n return !isNaN(Number(value)) || isCSSFunction(value);\n}\nfunction percentage(value) {\n return value.endsWith(\"%\") && number(value.slice(0, -1)) || isCSSFunction(value);\n}\n// Please refer to MDN when updating this list:\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units\n// https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries#container_query_length_units\nlet lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n \"cqw\",\n \"cqh\",\n \"cqi\",\n \"cqb\",\n \"cqmin\",\n \"cqmax\"\n];\nlet lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value) {\n return value === \"0\" || new RegExp(`^[+-]?[0-9]*\\.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`).test(value) || isCSSFunction(value);\n}\nlet lineWidths = new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nfunction lineWidth(value) {\n return lineWidths.has(value);\n}\nfunction shadow(value) {\n let parsedShadows = (0, _parseBoxShadowValue.parseBoxShadowValue)(normalize(value));\n for (let parsedShadow of parsedShadows){\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value) {\n let colors = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if ((0, _color.parseColor)(part, {\n loose: true\n }) !== null) return colors++, true;\n return false;\n });\n if (!result) return false;\n return colors > 0;\n}\nfunction image(value) {\n let images = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (url(part) || gradient(part) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((fn)=>part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return images > 0;\n}\nlet gradientTypes = new Set([\n \"conic-gradient\",\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-conic-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\"\n]);\nfunction gradient(value) {\n value = normalize(value);\n for (let type of gradientTypes){\n if (value.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nlet validPositions = new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n]);\nfunction position(value) {\n let positions = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return positions > 0;\n}\nfunction familyName(value) {\n let fonts = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n // If it contains spaces, then it should be quoted\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n // If it starts with a number, it's invalid\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result) return false;\n return fonts > 0;\n}\nlet genericNames = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\"\n]);\nfunction genericName(value) {\n return genericNames.has(value);\n}\nlet absoluteSizes = new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\"\n]);\nfunction absoluteSize(value) {\n return absoluteSizes.has(value);\n}\nlet relativeSizes = new Set([\n \"larger\",\n \"smaller\"\n]);\nfunction relativeSize(value) {\n return relativeSizes.has(value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"backgroundSize\", {\n enumerable: true,\n get: function() {\n return backgroundSize;\n }\n});\nconst _dataTypes = require(\"./dataTypes\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nfunction backgroundSize(value) {\n let keywordValues = [\n \"cover\",\n \"contain\"\n ];\n // the <length-percentage> type will probably be a css function\n // so we have to use `splitAtTopLevelOnly`\n return (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n let sizes = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(part, \"_\").filter(Boolean);\n if (sizes.length === 1 && keywordValues.includes(sizes[0])) return true;\n if (sizes.length !== 1 && sizes.length !== 2) return false;\n return sizes.every((size)=>(0, _dataTypes.length)(size) || (0, _dataTypes.percentage)(size) || size === \"auto\");\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n updateAllClasses: function() {\n return updateAllClasses;\n },\n asValue: function() {\n return asValue;\n },\n parseColorFormat: function() {\n return parseColorFormat;\n },\n asColor: function() {\n return asColor;\n },\n asLookupValue: function() {\n return asLookupValue;\n },\n typeMap: function() {\n return typeMap;\n },\n coerceValue: function() {\n return coerceValue;\n },\n getMatchingTypes: function() {\n return getMatchingTypes;\n }\n});\nconst _escapeCommas = /*#__PURE__*/ _interop_require_default(require(\"./escapeCommas\"));\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _dataTypes = require(\"./dataTypes\");\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _validateFormalSyntax = require(\"./validateFormalSyntax\");\nconst _featureFlags = require(\"../featureFlags.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction updateAllClasses(selectors, updateClass) {\n selectors.walkClasses((sel)=>{\n sel.value = updateClass(sel.value);\n if (sel.raws && sel.raws.value) {\n sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);\n }\n });\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return undefined;\n }\n let value = modifier.slice(1, -1);\n if (!validate(value)) {\n return undefined;\n }\n return (0, _dataTypes.normalize)(value);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== undefined) {\n return (0, _negateValue.default)(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === undefined) {\n return undefined;\n }\n return (0, _negateValue.default)(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate =()=>true } = {}) {\n var _options_values;\n let value = (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n if (value !== undefined) {\n return value;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitUtilityModifier(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [\n modifier,\n undefined\n ];\n }\n let arbitrary = isArbitraryValue(modifier);\n // The modifier could be of the form `[foo]/[bar]`\n // We want to handle this case properly\n // without affecting `[foo/bar]`\n if (arbitrary && !modifier.includes(\"]/[\")) {\n return [\n modifier,\n undefined\n ];\n }\n return [\n modifier.slice(0, slashIdx),\n modifier.slice(slashIdx + 1)\n ];\n}\nfunction parseColorFormat(value) {\n if (typeof value === \"string\" && value.includes(\"<alpha-value>\")) {\n let oldValue = value;\n return ({ opacityValue =1 })=>oldValue.replace(\"<alpha-value>\", opacityValue);\n }\n return value;\n}\nfunction unwrapArbitraryModifier(modifier) {\n return (0, _dataTypes.normalize)(modifier.slice(1, -1));\n}\nfunction asColor(modifier, options = {}, { tailwindConfig ={} } = {}) {\n var _options_values;\n if (((_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier]) !== undefined) {\n var _options_values1;\n return parseColorFormat((_options_values1 = options.values) === null || _options_values1 === void 0 ? void 0 : _options_values1[modifier]);\n }\n // TODO: Hoist this up to getMatchingTypes or something\n // We do this here because we need the alpha value (if any)\n let [color, alpha] = splitUtilityModifier(modifier);\n if (alpha !== undefined) {\n var _options_values2, _tailwindConfig_theme, _tailwindConfig_theme_opacity;\n var _options_values_color;\n let normalizedColor = (_options_values_color = (_options_values2 = options.values) === null || _options_values2 === void 0 ? void 0 : _options_values2[color]) !== null && _options_values_color !== void 0 ? _options_values_color : isArbitraryValue(color) ? color.slice(1, -1) : undefined;\n if (normalizedColor === undefined) {\n return undefined;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, unwrapArbitraryModifier(alpha));\n }\n if (((_tailwindConfig_theme = tailwindConfig.theme) === null || _tailwindConfig_theme === void 0 ? void 0 : (_tailwindConfig_theme_opacity = _tailwindConfig_theme.opacity) === null || _tailwindConfig_theme_opacity === void 0 ? void 0 : _tailwindConfig_theme_opacity[alpha]) === undefined) {\n return undefined;\n }\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, {\n validate: _dataTypes.color\n });\n}\nfunction asLookupValue(modifier, options = {}) {\n var _options_values;\n return (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n}\nfunction guess(validate) {\n return (modifier, options)=>{\n return asValue(modifier, options, {\n validate\n });\n };\n}\nlet typeMap = {\n any: asValue,\n color: asColor,\n url: guess(_dataTypes.url),\n image: guess(_dataTypes.image),\n length: guess(_dataTypes.length),\n percentage: guess(_dataTypes.percentage),\n position: guess(_dataTypes.position),\n lookup: asLookupValue,\n \"generic-name\": guess(_dataTypes.genericName),\n \"family-name\": guess(_dataTypes.familyName),\n number: guess(_dataTypes.number),\n \"line-width\": guess(_dataTypes.lineWidth),\n \"absolute-size\": guess(_dataTypes.absoluteSize),\n \"relative-size\": guess(_dataTypes.relativeSize),\n shadow: guess(_dataTypes.shadow),\n size: guess(_validateFormalSyntax.backgroundSize)\n};\nlet supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1) return [\n undefined,\n input\n ];\n return [\n input.slice(0, idx),\n input.slice(idx + 1)\n ];\n}\nfunction coerceValue(types, modifier, options, tailwindConfig) {\n if (options.values && modifier in options.values) {\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n return [\n result,\n type,\n null\n ];\n }\n }\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value] = splitAtFirst(arbitraryValue, \":\");\n // It could be that this resolves to `url(https` which is not a valid\n // identifier. We currently only support \"simple\" words with dashes or\n // underscores. E.g.: family-name\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value = arbitraryValue;\n } else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value.length > 0 && supportedTypes.includes(explicitType)) {\n return [\n asValue(`[${value}]`, options),\n explicitType,\n null\n ];\n }\n }\n let matches = getMatchingTypes(types, modifier, options, tailwindConfig);\n // Find first matching type\n for (let match of matches){\n return match;\n }\n return [];\n}\nfunction* getMatchingTypes(types, rawModifier, options, tailwindConfig) {\n let modifiersEnabled = (0, _featureFlags.flagEnabled)(tailwindConfig, \"generalizedModifiers\");\n let [modifier, utilityModifier] = splitUtilityModifier(rawModifier);\n let canUseUtilityModifier = modifiersEnabled && options.modifiers != null && (options.modifiers === \"any\" || typeof options.modifiers === \"object\" && (utilityModifier && isArbitraryValue(utilityModifier) || utilityModifier in options.modifiers));\n if (!canUseUtilityModifier) {\n modifier = rawModifier;\n utilityModifier = undefined;\n }\n if (utilityModifier !== undefined && modifier === \"\") {\n modifier = \"DEFAULT\";\n }\n // Check the full value first\n // TODO: Move to asValue… somehow\n if (utilityModifier !== undefined) {\n if (typeof options.modifiers === \"object\") {\n var _options_modifiers;\n var _options_modifiers_utilityModifier;\n let configValue = (_options_modifiers_utilityModifier = (_options_modifiers = options.modifiers) === null || _options_modifiers === void 0 ? void 0 : _options_modifiers[utilityModifier]) !== null && _options_modifiers_utilityModifier !== void 0 ? _options_modifiers_utilityModifier : null;\n if (configValue !== null) {\n utilityModifier = configValue;\n } else if (isArbitraryValue(utilityModifier)) {\n utilityModifier = unwrapArbitraryModifier(utilityModifier);\n }\n }\n }\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n yield [\n result,\n type,\n utilityModifier !== null && utilityModifier !== void 0 ? utilityModifier : null\n ];\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return toColorValue;\n }\n});\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _corePluginList = /*#__PURE__*/ _interop_require_default(require(\"../corePluginList\"));\nconst _configurePlugins = /*#__PURE__*/ _interop_require_default(require(\"./configurePlugins\"));\nconst _colors = /*#__PURE__*/ _interop_require_default(require(\"../public/colors\"));\nconst _defaults = require(\"./defaults\");\nconst _toPath = require(\"./toPath\");\nconst _normalizeConfig = require(\"./normalizeConfig\");\nconst _isPlainObject = /*#__PURE__*/ _interop_require_default(require(\"./isPlainObject\"));\nconst _cloneDeep = require(\"./cloneDeep\");\nconst _pluginUtils = require(\"./pluginUtils\");\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _toColorValue = /*#__PURE__*/ _interop_require_default(require(\"./toColorValue\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources){\n for(let k in source){\n let merged = customizer(target[k], source[k]);\n if (merged === undefined) {\n if ((0, _isPlainObject.default)(target[k]) && (0, _isPlainObject.default)(source[k])) {\n target[k] = mergeWith({}, target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nconst configUtils = {\n colors: _colors.default,\n negative (scale) {\n // TODO: Log that this function isn't really needed anymore?\n return Object.keys(scale).filter((key)=>scale[key] !== \"0\").reduce((negativeScale, key)=>{\n let negativeValue = (0, _negateValue.default)(scale[key]);\n if (negativeValue !== undefined) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints (screens) {\n return Object.keys(screens).filter((key)=>typeof screens[key] === \"string\").reduce((breakpoints, key)=>({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }), {});\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend })=>{\n return mergeWith(merged, extend, (mergedValue, extendValue)=>{\n if (mergedValue === undefined) {\n return [\n extendValue\n ];\n }\n if (Array.isArray(mergedValue)) {\n return [\n extendValue,\n ...mergedValue\n ];\n }\n return [\n extendValue,\n mergedValue\n ];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme)=>(0, _defaults.defaults)(merged, theme), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value) {\n // When we have an array of objects, we do want to merge it\n if (Array.isArray(merged) && (0, _isPlainObject.default)(merged[0])) {\n return merged.concat(value);\n }\n // When the incoming value is an array, and the existing config is an object, prepend the existing object\n if (Array.isArray(value) && (0, _isPlainObject.default)(value[0]) && (0, _isPlainObject.default)(merged)) {\n return [\n merged,\n ...value\n ];\n }\n // Override arrays (for example for font-families, box-shadows, ...)\n if (Array.isArray(value)) {\n return value;\n }\n // Execute default behaviour\n return undefined;\n}\nfunction mergeExtensions({ extend , ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions)=>{\n // The `extend` property is an array, so we need to check if it contains any functions\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils)=>mergeWith({}, ...[\n themeValue,\n ...extensions\n ].map((e)=>value(e, resolveThemePath, utils)), mergeExtensionCustomizer);\n });\n}\n/**\n *\n * @param {string} key\n * @return {Iterable<string[] & {alpha: string | undefined}>}\n */ function* toPaths(key) {\n let path = (0, _toPath.toPath)(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern);\n if (matches !== null) {\n let [, prefix, alpha] = matches;\n let newPath = (0, _toPath.toPath)(prefix);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n // theme('colors.red.500 / 0.5') -> ['colors', 'red', '500 / 0', '5]\n const resolvePath = (key, defaultValue)=>{\n for (const path of toPaths(key)){\n let index = 0;\n let val = object;\n while(val !== undefined && val !== null && index < path.length){\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === undefined || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath, configUtils) : val;\n }\n if (val !== undefined) {\n if (path.alpha !== undefined) {\n let normalized = (0, _pluginUtils.parseColorFormat)(val);\n return (0, _withAlphaVariable.withAlphaValue)(normalized, path.alpha, (0, _toColorValue.default)(normalized));\n }\n if ((0, _isPlainObject.default)(val)) {\n return (0, _cloneDeep.cloneDeep)(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath, {\n theme: resolvePath,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key)=>{\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config)=>{\n allConfigs = [\n ...allConfigs,\n config\n ];\n var _config_plugins;\n const plugins = (_config_plugins = config === null || config === void 0 ? void 0 : config.plugins) !== null && _config_plugins !== void 0 ? _config_plugins : [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin)=>{\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n var _plugin_config;\n allConfigs = [\n ...allConfigs,\n ...extractPluginConfigs([\n (_plugin_config = plugin === null || plugin === void 0 ? void 0 : plugin.config) !== null && _plugin_config !== void 0 ? _plugin_config : {}\n ])\n ];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [\n ...corePluginConfigs\n ].reduceRight((resolved, corePluginConfig)=>{\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({\n corePlugins: resolved\n });\n }\n return (0, _configurePlugins.default)(corePluginConfig, resolved);\n }, _corePluginList.default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [\n ...pluginLists\n ].reduceRight((resolved, pluginList)=>{\n return [\n ...resolved,\n ...pluginList\n ];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\"\n }\n ];\n var _t_theme, _c_plugins;\n return (0, _normalizeConfig.normalizeConfig)((0, _defaults.defaults)({\n theme: resolveFunctionKeys(mergeExtensions(mergeThemes(allConfigs.map((t)=>{\n return (_t_theme = t === null || t === void 0 ? void 0 : t.theme) !== null && _t_theme !== void 0 ? _t_theme : {};\n })))),\n corePlugins: resolveCorePlugins(allConfigs.map((c)=>c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c)=>{\n return (_c_plugins = c === null || c === void 0 ? void 0 : c.plugins) !== null && _c_plugins !== void 0 ? _c_plugins : [];\n }))\n }, ...allConfigs));\n}\n","module.exports = {\n content: [],\n presets: [],\n darkMode: 'media', // or 'class'\n theme: {\n accentColor: ({ theme }) => ({\n ...theme('colors'),\n auto: 'auto',\n }),\n animation: {\n none: 'none',\n spin: 'spin 1s linear infinite',\n ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',\n pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n bounce: 'bounce 1s infinite',\n },\n aria: {\n busy: 'busy=\"true\"',\n checked: 'checked=\"true\"',\n disabled: 'disabled=\"true\"',\n expanded: 'expanded=\"true\"',\n hidden: 'hidden=\"true\"',\n pressed: 'pressed=\"true\"',\n readonly: 'readonly=\"true\"',\n required: 'required=\"true\"',\n selected: 'selected=\"true\"',\n },\n aspectRatio: {\n auto: 'auto',\n square: '1 / 1',\n video: '16 / 9',\n },\n backdropBlur: ({ theme }) => theme('blur'),\n backdropBrightness: ({ theme }) => theme('brightness'),\n backdropContrast: ({ theme }) => theme('contrast'),\n backdropGrayscale: ({ theme }) => theme('grayscale'),\n backdropHueRotate: ({ theme }) => theme('hueRotate'),\n backdropInvert: ({ theme }) => theme('invert'),\n backdropOpacity: ({ theme }) => theme('opacity'),\n backdropSaturate: ({ theme }) => theme('saturate'),\n backdropSepia: ({ theme }) => theme('sepia'),\n backgroundColor: ({ theme }) => theme('colors'),\n backgroundImage: {\n none: 'none',\n 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n },\n backgroundOpacity: ({ theme }) => theme('opacity'),\n backgroundPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n backgroundSize: {\n auto: 'auto',\n cover: 'cover',\n contain: 'contain',\n },\n blur: {\n 0: '0',\n none: '0',\n sm: '4px',\n DEFAULT: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '40px',\n '3xl': '64px',\n },\n borderColor: ({ theme }) => ({\n ...theme('colors'),\n DEFAULT: theme('colors.gray.200', 'currentColor'),\n }),\n borderOpacity: ({ theme }) => theme('opacity'),\n borderRadius: {\n none: '0px',\n sm: '0.125rem',\n DEFAULT: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n borderSpacing: ({ theme }) => ({\n ...theme('spacing'),\n }),\n borderWidth: {\n DEFAULT: '1px',\n 0: '0px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n boxShadow: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n none: 'none',\n },\n boxShadowColor: ({ theme }) => theme('colors'),\n brightness: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n caretColor: ({ theme }) => theme('colors'),\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose,\n }),\n columns: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n '3xs': '16rem',\n '2xs': '18rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n },\n container: {},\n content: {\n none: 'none',\n },\n contrast: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 100: '1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n cursor: {\n auto: 'auto',\n default: 'default',\n pointer: 'pointer',\n wait: 'wait',\n text: 'text',\n move: 'move',\n help: 'help',\n 'not-allowed': 'not-allowed',\n none: 'none',\n 'context-menu': 'context-menu',\n progress: 'progress',\n cell: 'cell',\n crosshair: 'crosshair',\n 'vertical-text': 'vertical-text',\n alias: 'alias',\n copy: 'copy',\n 'no-drop': 'no-drop',\n grab: 'grab',\n grabbing: 'grabbing',\n 'all-scroll': 'all-scroll',\n 'col-resize': 'col-resize',\n 'row-resize': 'row-resize',\n 'n-resize': 'n-resize',\n 'e-resize': 'e-resize',\n 's-resize': 's-resize',\n 'w-resize': 'w-resize',\n 'ne-resize': 'ne-resize',\n 'nw-resize': 'nw-resize',\n 'se-resize': 'se-resize',\n 'sw-resize': 'sw-resize',\n 'ew-resize': 'ew-resize',\n 'ns-resize': 'ns-resize',\n 'nesw-resize': 'nesw-resize',\n 'nwse-resize': 'nwse-resize',\n 'zoom-in': 'zoom-in',\n 'zoom-out': 'zoom-out',\n },\n divideColor: ({ theme }) => theme('borderColor'),\n divideOpacity: ({ theme }) => theme('borderOpacity'),\n divideWidth: ({ theme }) => theme('borderWidth'),\n dropShadow: {\n sm: '0 1px 1px rgb(0 0 0 / 0.05)',\n DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],\n md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],\n lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],\n xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],\n '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',\n none: '0 0 #0000',\n },\n fill: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n flex: {\n 1: '1 1 0%',\n auto: '1 1 auto',\n initial: '0 1 auto',\n none: 'none',\n },\n flexBasis: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n }),\n flexGrow: {\n 0: '0',\n DEFAULT: '1',\n },\n flexShrink: {\n 0: '0',\n DEFAULT: '1',\n },\n fontFamily: {\n sans: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n '\"Noto Sans\"',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: ['ui-serif', 'Georgia', 'Cambria', '\"Times New Roman\"', 'Times', 'serif'],\n mono: [\n 'ui-monospace',\n 'SFMono-Regular',\n 'Menlo',\n 'Monaco',\n 'Consolas',\n '\"Liberation Mono\"',\n '\"Courier New\"',\n 'monospace',\n ],\n },\n fontSize: {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n '2xl': ['1.5rem', { lineHeight: '2rem' }],\n '3xl': ['1.875rem', { lineHeight: '2.25rem' }],\n '4xl': ['2.25rem', { lineHeight: '2.5rem' }],\n '5xl': ['3rem', { lineHeight: '1' }],\n '6xl': ['3.75rem', { lineHeight: '1' }],\n '7xl': ['4.5rem', { lineHeight: '1' }],\n '8xl': ['6rem', { lineHeight: '1' }],\n '9xl': ['8rem', { lineHeight: '1' }],\n },\n fontWeight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n gap: ({ theme }) => theme('spacing'),\n gradientColorStops: ({ theme }) => theme('colors'),\n gradientColorStopPositions: {\n '0%': '0%',\n '5%': '5%',\n '10%': '10%',\n '15%': '15%',\n '20%': '20%',\n '25%': '25%',\n '30%': '30%',\n '35%': '35%',\n '40%': '40%',\n '45%': '45%',\n '50%': '50%',\n '55%': '55%',\n '60%': '60%',\n '65%': '65%',\n '70%': '70%',\n '75%': '75%',\n '80%': '80%',\n '85%': '85%',\n '90%': '90%',\n '95%': '95%',\n '100%': '100%',\n },\n grayscale: {\n 0: '0',\n DEFAULT: '100%',\n },\n gridAutoColumns: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridAutoRows: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridColumn: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-7': 'span 7 / span 7',\n 'span-8': 'span 8 / span 8',\n 'span-9': 'span 9 / span 9',\n 'span-10': 'span 10 / span 10',\n 'span-11': 'span 11 / span 11',\n 'span-12': 'span 12 / span 12',\n 'span-full': '1 / -1',\n },\n gridColumnEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridColumnStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridRow: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-full': '1 / -1',\n },\n gridRowEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridRowStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridTemplateColumns: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n },\n gridTemplateRows: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n },\n height: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n hueRotate: {\n 0: '0deg',\n 15: '15deg',\n 30: '30deg',\n 60: '60deg',\n 90: '90deg',\n 180: '180deg',\n },\n inset: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n invert: {\n 0: '0',\n DEFAULT: '100%',\n },\n keyframes: {\n spin: {\n to: {\n transform: 'rotate(360deg)',\n },\n },\n ping: {\n '75%, 100%': {\n transform: 'scale(2)',\n opacity: '0',\n },\n },\n pulse: {\n '50%': {\n opacity: '.5',\n },\n },\n bounce: {\n '0%, 100%': {\n transform: 'translateY(-25%)',\n animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',\n },\n '50%': {\n transform: 'none',\n animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',\n },\n },\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n 3: '.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n },\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n },\n listStyleImage: {\n none: 'none',\n },\n margin: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n }),\n lineClamp: {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n },\n maxHeight: ({ theme }) => ({\n ...theme('spacing'),\n none: 'none',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n none: 'none',\n 0: '0rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n prose: '65ch',\n ...breakpoints(theme('screens')),\n }),\n minHeight: {\n 0: '0px',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n minWidth: {\n 0: '0px',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n objectPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n opacity: {\n 0: '0',\n 5: '0.05',\n 10: '0.1',\n 20: '0.2',\n 25: '0.25',\n 30: '0.3',\n 40: '0.4',\n 50: '0.5',\n 60: '0.6',\n 70: '0.7',\n 75: '0.75',\n 80: '0.8',\n 90: '0.9',\n 95: '0.95',\n 100: '1',\n },\n order: {\n first: '-9999',\n last: '9999',\n none: '0',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n outlineColor: ({ theme }) => theme('colors'),\n outlineOffset: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n outlineWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n padding: ({ theme }) => theme('spacing'),\n placeholderColor: ({ theme }) => theme('colors'),\n placeholderOpacity: ({ theme }) => theme('opacity'),\n ringColor: ({ theme }) => ({\n DEFAULT: theme('colors.blue.500', '#3b82f6'),\n ...theme('colors'),\n }),\n ringOffsetColor: ({ theme }) => theme('colors'),\n ringOffsetWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: '0.5',\n ...theme('opacity'),\n }),\n ringWidth: {\n DEFAULT: '3px',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n rotate: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n 45: '45deg',\n 90: '90deg',\n 180: '180deg',\n },\n saturate: {\n 0: '0',\n 50: '.5',\n 100: '1',\n 150: '1.5',\n 200: '2',\n },\n scale: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n },\n screens: {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n scrollMargin: ({ theme }) => ({\n ...theme('spacing'),\n }),\n scrollPadding: ({ theme }) => theme('spacing'),\n sepia: {\n 0: '0',\n DEFAULT: '100%',\n },\n skew: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n },\n space: ({ theme }) => ({\n ...theme('spacing'),\n }),\n spacing: {\n px: '1px',\n 0: '0px',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n stroke: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n strokeWidth: {\n 0: '0',\n 1: '1',\n 2: '2',\n },\n supports: {},\n data: {},\n textColor: ({ theme }) => theme('colors'),\n textDecorationColor: ({ theme }) => theme('colors'),\n textDecorationThickness: {\n auto: 'auto',\n 'from-font': 'from-font',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textIndent: ({ theme }) => ({\n ...theme('spacing'),\n }),\n textOpacity: ({ theme }) => theme('opacity'),\n textUnderlineOffset: {\n auto: 'auto',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left',\n },\n transitionDelay: {\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionDuration: {\n DEFAULT: '150ms',\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionProperty: {\n none: 'none',\n all: 'all',\n DEFAULT:\n 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',\n colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform',\n },\n transitionTimingFunction: {\n DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',\n },\n translate: ({ theme }) => ({\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n width: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n screen: '100vw',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n willChange: {\n auto: 'auto',\n scroll: 'scroll-position',\n contents: 'contents',\n transform: 'transform',\n },\n zIndex: {\n auto: 'auto',\n 0: '0',\n 10: '10',\n 20: '20',\n 30: '30',\n 40: '40',\n 50: '50',\n },\n },\n plugins: [],\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return getAllConfigs;\n }\n});\nconst _configfull = /*#__PURE__*/ _interop_require_default(require(\"../../stubs/config.full.js\"));\nconst _featureFlags = require(\"../featureFlags\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getAllConfigs(config) {\n var _config_presets;\n const configs = ((_config_presets = config === null || config === void 0 ? void 0 : config.presets) !== null && _config_presets !== void 0 ? _config_presets : [\n _configfull.default\n ]).slice().reverse().flatMap((preset)=>getAllConfigs(preset instanceof Function ? preset() : preset));\n const features = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: ({ theme })=>({\n DEFAULT: \"#3b82f67f\",\n ...theme(\"colors\")\n })\n }\n },\n disableColorOpacityUtilitiesByDefault: {\n corePlugins: {\n backgroundOpacity: false,\n borderOpacity: false,\n divideOpacity: false,\n placeholderOpacity: false,\n ringOpacity: false,\n textOpacity: false\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature)=>(0, _featureFlags.flagEnabled)(config, feature)).map((feature)=>features[feature]);\n return [\n config,\n ...experimentals,\n ...configs\n ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _resolveConfig = /*#__PURE__*/ _interop_require_default(require(\"../util/resolveConfig\"));\nconst _getAllConfigs = /*#__PURE__*/ _interop_require_default(require(\"../util/getAllConfigs\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction resolveConfig(...configs) {\n let [, ...defaultConfigs] = (0, _getAllConfigs.default)(configs[0]);\n return (0, _resolveConfig.default)([\n ...configs,\n ...defaultConfigs\n ]);\n}\n","let resolveConfig = require('./lib/public/resolve-config')\nmodule.exports = (resolveConfig.__esModule ? resolveConfig : { default: resolveConfig }).default\n","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","import * as TailwindColors from \"tailwindcss/colors\"\n\nexport const BrandColors = {\n 50: \"#FCE3E4\",\n 100: \"#F9CDCE\",\n 200: \"#F39699\",\n 300: \"#ED6368\",\n 400: \"#E72C32\",\n 500: \"#C4161C\",\n 600: \"#9C1216\",\n 700: \"#770D11\",\n 800: \"#4E090B\",\n 900: \"#290506\",\n}\n\nconst customColors = {\n onprimary: TailwindColors.white,\n warning: TailwindColors.amber,\n error: TailwindColors.rose,\n info: TailwindColors.cyan,\n success: TailwindColors.lime,\n primary: TailwindColors.sky,\n brand: BrandColors,\n}\n\nexport const CustomColors = {\n ...customColors,\n // Warning\n warning: customColors.warning[\"500\"],\n \"warning-darken\": customColors.warning[\"600\"],\n \"warning-lighten\": customColors.warning[\"400\"],\n // Success\n success: customColors.success[\"500\"],\n \"success-darken\": customColors.success[\"600\"],\n \"success-lighten\": customColors.success[\"400\"],\n // Error\n error: customColors.error[\"500\"],\n \"error-darken\": customColors.error[\"600\"],\n \"error-lighten\": customColors.error[\"400\"],\n // Info\n info: customColors.info[\"500\"],\n \"info-darken\": customColors.info[\"600\"],\n \"info-lighten\": customColors.info[\"400\"],\n // Primary\n primary: customColors.primary[\"500\"],\n \"primary-darken\": customColors.primary[\"600\"],\n \"primary-lighten\": customColors.primary[\"400\"],\n // Surfaces\n onsurface: TailwindColors.slate[\"500\"],\n onbackground: TailwindColors.slate[\"700\"],\n surface: TailwindColors.slate[\"50\"],\n background: TailwindColors.white,\n}\n\nexport default {\n prefix: \"e-\",\n corePlugins: {\n preflight: false,\n },\n content: [\"./src/**/*.{html,js,vue,ts}\"],\n theme: {\n extend: {\n colors: CustomColors,\n maxWidth: {\n \"1/12\": \"8.333333333%\",\n \"2/12\": \"16.666666666%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333333%\",\n \"5/12\": \"41.666666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333334%\",\n \"8/12\": \"66.666666666%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333334%\",\n \"11/12\": \"91.666666666%\",\n \"12/12\": \"100%\",\n },\n },\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\",\n },\n },\n plugins: [],\n safelist: [\n {\n pattern: /e-w-(full|auto)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-grow/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-basis-(\\d{1,2}\\/\\d{1,2}|full|auto|0)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /^!?e-max-w-(\\d{1,2}\\/\\d{1,2})/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-offset-(1[0-2]|[1-9])/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-items-(start|center|end|baseline|stretch)/,\n },\n {\n pattern: /e-self-(start|center|end|baseline|stretch)/,\n },\n {\n pattern:\n /e-justify-(around|between|center|end|evenly|normal|start|stretch)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern:\n /e-content-(around|baseline|between|center|end|evenly|normal|start|stretch)/,\n },\n ],\n}\n","import resolveConfig from \"tailwindcss/resolveConfig\"\nimport tailwindConfig from \"../config\"\nimport { Size, BaseColor } from \"@/types\"\n\nexport const fullConfig = resolveConfig(tailwindConfig) as any\n\nexport const TextSizes = fullConfig.theme.fontSize\n\nexport const Colors = fullConfig.theme.colors\n\nexport const BadgeSizes = [\n Size.dot,\n Size.xs,\n Size.sm,\n Size.md,\n Size.lg,\n Size.xl,\n] as const\n\nexport const AvatarSizes = [\n Size.xs,\n Size.sm,\n Size.md,\n Size.lg,\n Size.xl,\n Size[\"2xl\"],\n] as const\n\nexport const IconSizes = [\n Size.xs,\n Size.sm,\n Size.md,\n Size.base,\n Size.lg,\n Size.xl,\n Size[\"2xl\"],\n Size[\"3xl\"],\n Size[\"4xl\"],\n Size[\"5xl\"],\n Size[\"6xl\"],\n Size[\"7xl\"],\n Size[\"8xl\"],\n Size[\"9xl\"],\n] as const\n\nexport const BadgeColors = [\n BaseColor.warning,\n BaseColor.error,\n BaseColor.info,\n BaseColor.success,\n BaseColor.primary,\n BaseColor.default,\n] as const\n\nexport const EVENTS = [\n \"play\",\n \"pause\",\n \"ended\",\n \"loadeddata\",\n \"waiting\",\n \"playing\",\n \"timeupdate\",\n \"canplay\",\n \"canplaythrough\",\n \"statechanged\",\n]\n\nexport default {}\n","\nimport Vue, { PropType } from \"vue\"\nimport { IconSizes } from \"@/constants\"\nimport { BaseColor, Size, TailwindColorClass, TIconSize } from \"@/types\"\n\nexport default Vue.extend({\n name: \"EIcon\",\n props: {\n icon: {\n type: String,\n default: \"\",\n },\n color: {\n type: String as PropType<TailwindColorClass>,\n default: BaseColor.default,\n },\n size: {\n type: String as PropType<TIconSize>,\n default: Size.sm,\n },\n },\n computed: {\n sizes(): Record<Size, string> {\n return IconSizes.reduce((acc, s) => {\n return {\n ...acc,\n [s]: `e-text-${s}`,\n }\n }, {}) as Record<Size, string>\n },\n iconClasses(): string[] {\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.sm]\n const iconClasses = `${\n this.icon?.split(\" \")?.length > 1 ? this.icon : `fa fa-${this.icon}`\n }`\n const color = this.color\n\n return [\n \"e-inline-flex e-items-center e-justify-center e-rounded-full\",\n color,\n iconClasses,\n sizeClasses,\n ]\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport { Size } from \"@/types\"\nimport { TextSizes, Colors } from \"@/constants\"\n\nexport default Vue.extend({\n name: \"ESpinner\",\n props: {\n dark: {\n type: Boolean,\n default: false,\n },\n color: {\n type: Boolean,\n default: true,\n },\n animationDuration: {\n type: [Number, String],\n default: 1000,\n },\n size: {\n type: String as PropType<Size>,\n default: Size.base,\n },\n opacity: {\n type: [String, Number],\n default: 1,\n },\n },\n data() {\n return {\n sizes: TextSizes,\n colors: Colors,\n }\n },\n computed: {\n computedSize(): number {\n return this.sizes[Size[this.size]] || this.size || this.sizes[Size.base]\n },\n fill(): { primary: string; secondary: string } {\n let fill = {\n primary: this.colors.brand[500],\n secondary: this.colors.neutral[300],\n }\n\n if (this.dark && !this.color) {\n fill = {\n primary: this.colors.neutral[100],\n secondary: this.colors.neutral[100],\n }\n }\n\n if (!this.dark && this.color) {\n fill = {\n primary: this.colors.brand[500],\n secondary: this.colors.neutral[950],\n }\n }\n\n if (!this.dark && !this.color) {\n fill = {\n primary: this.colors.neutral[200],\n secondary: this.colors.neutral[200],\n }\n }\n\n return fill\n },\n },\n methods: {\n getNthPathStyle(index: number) {\n const animationDuration =\n typeof this.animationDuration === \"string\"\n ? Number.parseInt(this.animationDuration)\n : this.animationDuration\n\n return {\n animationDuration: `${this.animationDuration}ms`,\n animationDelay: `${(index / 10) * animationDuration}ms`,\n fill: `${this.fill[index % 2 === 0 ? \"primary\" : \"secondary\"]}`,\n }\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport { FlexAlignContent, FlexAlignItems, FlexJustifyContent } from \"@/types\"\n\nexport default Vue.extend({\n props: {\n align: {\n type: String as PropType<FlexAlignItems>,\n default: undefined,\n },\n alignContent: {\n type: String as PropType<FlexAlignContent>,\n default: undefined,\n },\n justify: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyXs: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifySm: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyMd: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyLg: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyXl: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n noGutters: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n },\n computed: {\n justifyClasses(): Record<string, boolean> {\n return {\n [`e-justify-${this.justify}`]: !!this.justify,\n [`xs:e-justify-${this.justifySm}`]: !!this.justifySm,\n [`sm:e-justify-${this.justifySm}`]: !!this.justifySm,\n [`md:e-justify-${this.justifyMd}`]: !!this.justifyMd,\n [`lg:e-justify-${this.justifyLg}`]: !!this.justifyLg,\n [`xl:e-justify-${this.justifyXl}`]: !!this.justifyXl,\n }\n },\n rowClasses(): Record<string, boolean> {\n return {\n ...(this.align ? { [`e-items-${this.align}`]: true } : {}),\n ...(this.alignContent\n ? { [`e-content-${this.alignContent}`]: true }\n : {}),\n ...(this.noGutters ? { [\"e-row--no-gutters\"]: true } : {}),\n ...this.justifyClasses,\n }\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport { FlexAlignSelf } from \"@/types\"\n\nexport default Vue.extend({\n props: {\n alignSelf: {\n type: String as PropType<FlexAlignSelf>,\n default: \"auto\",\n },\n cols: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n lg: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n md: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n offset: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetLg: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetMd: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetSm: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetXs: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetXl: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n sm: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n xs: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n xl: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n },\n computed: {\n colClasses(): Record<string, boolean> {\n return {\n // Align self\n ...(this.alignSelf ? { [`e-self-${this.alignSelf}`]: true } : {}),\n\n // cols=\"auto\"\n [this.autoClasses(\"xs:\", this.xs)]: this.isSizePropAuto(this.xs),\n [this.autoClasses(\"sm:\", this.sm)]: this.isSizePropAuto(this.sm),\n [this.autoClasses(\"md:\", this.md)]: this.isSizePropAuto(this.md),\n [this.autoClasses(\"lg:\", this.lg)]: this.isSizePropAuto(this.lg),\n [this.autoClasses(\"xl:e\", this.xl)]: this.isSizePropAuto(this.xl),\n [this.autoClasses(\"\", this.cols)]: this.isSizePropAuto(this.cols, true),\n\n // cols=\"12\"\n \"xs:e-basis-full xs:!e-max-w-12/12\": this.xs === 12 || this.xs === \"12\",\n \"sm:e-basis-full sm:!e-max-w-12/12\": this.sm === 12 || this.sm === \"12\",\n \"md:e-basis-full md:!e-max-w-12/12\": this.md === 12 || this.md === \"12\",\n \"lg:e-basis-full lg:!e-max-w-12/12\": this.lg === 12 || this.lg === \"12\",\n \"xl:e-basis-full xl:!e-max-w-12/12\": this.xl === 12 || this.xl === \"12\",\n \"e-basis-full e-max-w-12/12\": this.cols === 12 || this.cols === \"12\",\n\n // cols=\"n\"\n [`xs:e-basis-${this.xs}/12 xs:!e-max-w-${this.xs}/12`]:\n this.isSizePropertyNumeric(this.xs),\n [`sm:e-basis-${this.sm}/12 sm:!e-max-w-${this.sm}/12`]:\n this.isSizePropertyNumeric(this.sm),\n [`md:e-basis-${this.md}/12 md:!e-max-w-${this.md}/12`]:\n this.isSizePropertyNumeric(this.md),\n [`lg:e-basis-${this.lg}/12 lg:!e-max-w-${this.lg}/12`]:\n this.isSizePropertyNumeric(this.lg),\n [`xl:e-basis-${this.xl}/12 xl:!e-max-w-${this.xl}/12`]:\n this.isSizePropertyNumeric(this.xl),\n [`e-basis-${this.cols}/12 !e-max-w-${this.cols}/12`]:\n this.isSizePropertyNumeric(this.cols),\n\n // offset=\"n\"\n [`xs:e-offset-${this.offsetXs}`]: this.offsetXs !== undefined,\n [`sm:e-offset-${this.offsetSm}`]: this.offsetSm !== undefined,\n [`md:e-offset-${this.offsetMd}`]: this.offsetMd !== undefined,\n [`lg:e-offset-${this.offsetLg}`]: this.offsetLg !== undefined,\n [`xl:e-offset-${this.offsetXl}`]: this.offsetXl !== undefined,\n [`e-offset-${this.offset}`]: this.offset !== undefined,\n }\n },\n },\n methods: {\n autoClasses(prefix: string, value: boolean | string | number) {\n const basis = value === \"auto\" ? \"auto\" : \"0\"\n const grow = value === \"auto\" ? \"-0\" : \"\"\n const width = value === \"auto\" ? \"auto\" : \"full\"\n\n return `${prefix}e-basis-${basis} ${prefix}e-grow${grow} ${prefix}e-w-${width}`\n },\n isSizePropAuto(\n prop: boolean | string | number | undefined,\n acceptUndefined = false\n ) {\n return (\n prop === \"auto\" ||\n prop === 0 ||\n prop === \"0\" ||\n (acceptUndefined && !prop)\n )\n },\n isSizePropertyNumeric(prop: boolean | string | number | undefined) {\n const n = Number.parseInt(prop as string)\n\n return prop !== \"auto\" && !isNaN(n) && n >= 1 && n < 12\n },\n },\n})\n","export function isFullScreen() {\n return !!(\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement\n )\n}\n\nexport function makeFullScreen(element: HTMLElement) {\n if (isFullScreen()) {\n return new Promise((resolve) => resolve())\n }\n\n if (element.requestFullscreen) {\n return element?.requestFullscreen()\n } else if (element.mozRequestFullScreen) {\n return element?.mozRequestFullScreen()\n } else if (element.webkitRequestFullScreen) {\n return element?.webkitRequestFullScreen()\n } else if (element.msRequestFullscreen) {\n return element?.msRequestFullscreen()\n }\n}\n\nexport function exitFullScreen() {\n if (!isFullScreen()) {\n return new Promise((resolve) => resolve())\n }\n\n if (document.exitFullscreen) {\n return document.exitFullscreen()\n } else if (document.mozCancelFullScreen) {\n return document.mozCancelFullScreen()\n } else if (document.webkitCancelFullScreen) {\n return document.webkitCancelFullScreen()\n } else if (document.msExitFullscreen) {\n return document.msExitFullscreen()\n }\n}\n","\nimport Vue, { PropType } from \"vue\"\nimport { makeFullScreen, exitFullScreen } from \"@/utils\"\nimport ESpinner from \"@/components/ESpinner.vue\"\n// types:\nexport type VideoSource = {\n type: string\n src: string\n}\n\n// Helper functions\nconst leadingZeroFormatter = new Intl.NumberFormat(undefined, {\n minimumIntegerDigits: 2,\n})\n\n// List of events so we can bind them on mount\nexport const VIDEO_PLAYER_EVENTS = [\n \"play\",\n \"pause\",\n \"ended\",\n \"loadeddata\",\n \"waiting\",\n \"playing\",\n \"timeupdate\",\n \"canplay\",\n \"canplaythrough\",\n \"statechanged\",\n \"error\",\n]\n\nconst formatDuration = (time: number) => {\n const seconds = Math.floor(time % 60)\n const minutes = Math.floor(time / 60) % 60\n const hours = Math.floor(time / 3600)\n if (hours === 0) {\n return `${minutes}:${leadingZeroFormatter.format(seconds)}`\n } else {\n return `${hours}:${leadingZeroFormatter.format(\n minutes\n )}:${leadingZeroFormatter.format(seconds)}`\n }\n}\n\nexport default Vue.extend({\n name: \"VideoPlayer\",\n components: {\n ESpinner,\n },\n props: {\n sources: {\n type: [Array, String] as PropType<VideoSource[] | string>,\n required: true,\n },\n videoListeners: {\n type: Object as PropType<Partial<HTMLVideoElement>>,\n default: () => ({}),\n },\n videoOptions: {\n type: Object as PropType<Partial<HTMLVideoElement>>,\n default: () => ({}),\n },\n },\n data() {\n return {\n playing: false,\n percentagePlayed: 0,\n videoLength: \"0:00\",\n duration: 0,\n videoDuration: 0,\n currentTime: \"0:00\",\n realtime: 0,\n isScrubbing: false,\n wasPaused: false,\n isFullscreen: false,\n isFinished: false,\n isLoading: true,\n isError: false,\n }\n },\n computed: {\n sourceItems() {\n return (\n Array.isArray(this.sources) ? this.sources : [{ src: this.sources }]\n ) as VideoSource[]\n },\n hasStartedOrFinished(): boolean {\n return (\n (this.isFinished || this.realtime <= 0.1) &&\n !this.isLoading &&\n !this.isLooped()\n )\n },\n withControls() {\n const videoOptions = this.videoOptions as Partial<HTMLVideoElement>\n\n return videoOptions?.controls === false ? \"hide\" : \"\"\n },\n },\n mounted() {\n this.bindEvents()\n this.initializePlayer()\n this.initializeFullscreenListeners()\n },\n destroyed() {\n this.unbindEvents()\n this.destroyPlayer()\n this.removeFullscreenListeners()\n },\n\n methods: {\n handle404Error() {\n this.isError = true\n this.isLoading = false\n this.playing = false\n },\n bindEvents() {\n VIDEO_PLAYER_EVENTS.forEach((event) => {\n this.bindVideoEvent(event)\n })\n },\n unbindEvents() {\n VIDEO_PLAYER_EVENTS.forEach((event) => {\n this.unbindVideoEvent(event)\n })\n },\n bindVideoEvent(which: string) {\n const player = this.$refs.player as HTMLVideoElement\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n player.addEventListener(\n which,\n (event) => {\n if (which === \"loadeddata\") {\n this.videoLength = formatDuration(player.duration)\n }\n\n if (which === \"timeupdate\") {\n this.percentagePlayed = (player.currentTime / player.duration) * 100\n timelineContainer.style.setProperty(\n \"--progress-position\",\n this.percentagePlayed.toString()\n )\n }\n\n this.$emit(which, { event, player: this })\n },\n true\n )\n },\n unbindVideoEvent(which: string) {\n const player = this.$refs.player as HTMLVideoElement\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n player.addEventListener(\n which,\n (event) => {\n if (which === \"loadeddata\") {\n this.videoLength = formatDuration(player.duration)\n }\n\n if (which === \"timeupdate\") {\n this.percentagePlayed = (player.currentTime / player.duration) * 100\n timelineContainer.style.setProperty(\n \"--progress-position\",\n this.percentagePlayed.toString()\n )\n }\n\n this.$emit(which, { event, player: this })\n },\n true\n )\n },\n initializePlayer() {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n if (playerRef.autoplay) {\n this.setPlaying(true)\n }\n document.addEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\n document.addEventListener(\"keydown\", this.handleKeyDown)\n },\n destroyPlayer() {\n window.removeEventListener(\"keydown\", this.handleKeyDown)\n document.removeEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\n },\n removeFullscreenListeners() {\n if (\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n ) {\n document.removeEventListener(\n \"fullscreenchange\",\n this.handleFullscreenChange\n )\n document.removeEventListener(\n \"webkitfullscreenchange\",\n this.handleFullscreenChange\n )\n document.removeEventListener(\n \"mozfullscreenchange\",\n this.handleFullscreenChange\n )\n document.removeEventListener(\n \"MSFullscreenChange\",\n this.handleFullscreenChange\n )\n } else {\n console.log(\"Fullscreen API is not supported in this browser.\")\n }\n },\n initializeFullscreenListeners() {\n if (\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n ) {\n document.addEventListener(\n \"fullscreenchange\",\n this.handleFullscreenChange\n )\n document.addEventListener(\n \"webkitfullscreenchange\",\n this.handleFullscreenChange\n )\n document.addEventListener(\n \"mozfullscreenchange\",\n this.handleFullscreenChange\n )\n document.addEventListener(\n \"MSFullscreenChange\",\n this.handleFullscreenChange\n )\n } else {\n console.log(\"Fullscreen API is not supported in this browser.\")\n }\n },\n handleFullscreenChange() {\n this.isFullscreen =\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement ||\n (window.innerWidth == screen.width &&\n window.innerHeight == screen.height)\n },\n\n isLooped() {\n const player = this.$refs.player as HTMLVideoElement\n\n return player.loop\n },\n handleScrubbingOnMouseEnd(e: MouseEvent) {\n if (this.isScrubbing) {\n this.toggleScrubbing(e)\n }\n },\n handleEnded() {\n this.isFinished = true\n this.playing = false\n },\n handleLoading() {\n this.isLoading = false\n },\n play() {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n const playPromise = playerRef.play()\n if (playPromise !== undefined) {\n playerRef\n .play()\n .then(() => this.setPlaying(true))\n .catch(console.error)\n }\n },\n pause() {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n playerRef.pause()\n this.setPlaying(false)\n },\n togglePlay() {\n if (this.playing) {\n this.pause()\n } else {\n this.play()\n }\n },\n setPlaying(state: boolean) {\n this.playing = state\n },\n seekToPercentage(percentage: number) {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n const currentTime = (percentage / 100) * playerRef.duration\n playerRef.currentTime = currentTime\n },\n convertTimeToDuration(seconds: number) {\n // @ts-ignore\n return [parseInt((seconds / 60) % 60, 10), parseInt(seconds % 60, 10)]\n .join(\":\")\n .replace(/\\b(\\d)\\b/g, \"0$1\")\n },\n\n closeFullscreenMode() {\n if (document.fullscreenElement) {\n exitFullScreen().then(() => {\n this.isFullscreen = false\n console.log(\"Exited fullscreen\")\n })\n\n this.isFullscreen = false\n }\n },\n openFullscreenMode() {\n const element = this.$refs.videoContainer as HTMLDivElement\n if (element) {\n makeFullScreen(element).then(() => {\n this.isFullscreen = true\n })\n this.isFullscreen = true\n }\n },\n toggleFullscreenMode() {\n if (this.isFullscreen) {\n this.closeFullscreenMode()\n } else {\n this.openFullscreenMode()\n }\n },\n\n getDuration() {\n const player = this.$refs.player as HTMLVideoElement\n this.videoLength = formatDuration(player.duration)\n this.videoDuration = player.duration\n },\n handleTimeUpdate() {\n const player = this.$refs.player as HTMLVideoElement\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n if (!player || !timelineContainer) {\n return\n }\n this.currentTime = formatDuration(player.currentTime)\n this.realtime = player.currentTime\n const percent = Number(this.realtime) / Number(this.videoDuration)\n timelineContainer.style.setProperty(\n \"--progress-position\",\n percent.toString()\n )\n },\n handleTimelineUpdate(e: MouseEvent) {\n const player = this.$refs.player as HTMLVideoElement\n if (!document.body.contains(player)) {\n return\n }\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n const rect = timelineContainer.getBoundingClientRect()\n const percent =\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\n timelineContainer.style.setProperty(\n \"--preview-position\",\n percent.toString()\n )\n if (this.isScrubbing) {\n e.preventDefault()\n timelineContainer.style.setProperty(\n \"--progress-position\",\n percent.toString()\n )\n }\n },\n skip(duration = 5) {\n const player = this.$refs.player as HTMLVideoElement\n\n player.currentTime += duration\n },\n async toggleScrubbing(e: MouseEvent) {\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n const videoContainer = this.$refs.videoContainer as HTMLDivElement\n const player = this.$refs.player as HTMLVideoElement\n if (!player) {\n return\n }\n const rect = timelineContainer.getBoundingClientRect()\n const percent =\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\n this.isScrubbing = (e.buttons & 1) === 1\n videoContainer.classList.toggle(\"scrubbing\", this.isScrubbing)\n if (this.isScrubbing) {\n this.wasPaused = player.paused\n await player.pause()\n this.handleTimelineUpdate(e)\n\n return\n }\n this.realtime = percent * this.videoDuration\n player.currentTime = percent * this.videoDuration\n if (this.wasPaused) {\n return\n }\n const playPromise = player.play()\n // @see issue: https://developer.chrome.com/blog/play-request-was-interrupted/\n if (playPromise !== undefined) {\n playPromise\n .then(() => this.handleTimelineUpdate(e))\n .catch(console.error)\n }\n },\n\n handleKeyDown(e: KeyboardEvent) {\n const tagName = document.activeElement?.tagName.toLowerCase()\n if (tagName === \"input\") {\n return\n }\n switch (e.key.toLowerCase()) {\n case \" \":\n if (tagName === \"button\") {\n return\n }\n this.togglePlay()\n break\n case \"k\":\n this.togglePlay()\n break\n case \"escape\":\n e.preventDefault()\n this.closeFullscreenMode()\n this.isFullscreen = false\n\n break\n case \"f\":\n this.openFullscreenMode()\n this.isFullscreen = true\n\n break\n }\n },\n },\n})\n","import * as d3 from \"d3\"\nimport { TimelineAxis, TimelineAxesConfig } from \"@/types\"\n\nconst getFormattedDay = (d: Date) => {\n const day = d3.utcFormat(\"%_d\")(d)\n const daySuffixes: { [key: string]: string } = {\n [\"1\"]: \"st\",\n [\"2\"]: \"nd\",\n [\"3\"]: \"rd\",\n }\n\n const daySuffix = daySuffixes[day.charAt(1)] || \"th\"\n\n return `${day}${daySuffix}`\n}\n\nconst getFormattedDayNoEndOfMonth = (d: Date) => {\n const nextDay = new Date(\n Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() + 1)\n )\n const isEndOfTheMonth = nextDay.getUTCDate() === 1\n\n if (isEndOfTheMonth) {\n return \"\"\n }\n\n return d3.utcFormat(\"%-d\")(d)\n}\n\nconst getFormattedHour = (d: Date) => {\n return [\"0\", \" 0\", \"00\"].includes(d3.utcFormat(\"%H\")(d))\n ? \"\"\n : `${d3.utcFormat(\"%H\")(d)}h`\n}\n\nconst getFormattedHourMinute = (d: Date) => {\n const HH_MM = d3.utcFormat(\"%H:%M\")(d)\n\n return HH_MM === \"00:00\" ? \"\" : HH_MM\n}\n\nconst getFormattedMinuteSecond = (d: Date) => {\n return d3.utcFormat(\"%M:%S\")(d)\n}\n\nconst getFormattedOverviewMinuteSecond = (d: Date) => {\n const HH_MM_SS = d3.utcFormat(\"%Hh%Mm\")(d)\n\n return `${HH_MM_SS}`\n}\n\nconst getFormattedOverviewHour = (d: Date) => {\n const hour = getFormattedHourMinute(d)\n const day = getFormattedDay(d)\n const month = d3.utcFormat(\"%B\")(d)\n\n return hour || `${month} ${day}`\n}\n\nconst getFormattedDayHourMinute = (d: Date) => {\n const HH_MM = getFormattedHourMinute(d)\n const hour = Number.parseInt(d3.utcFormat(\"%H\")(d))\n const day = getFormattedDay(d)\n const month = d3.utcFormat(\"%B\")(d)\n\n if (HH_MM && hour % 6 === 0) {\n return `${month} ${day} ${HH_MM}`\n }\n\n return getFormattedOverviewHour(d)\n}\n\nconst filterHourDivisibleBy = (n: number) => {\n return (d: Date) => {\n const hour = d3.utcFormat(\"%H\")(d)\n const minute = d3.utcFormat(\"%M\")(d)\n\n return !(minute === \"00\" && Number.parseInt(hour) % n === 0)\n }\n}\n\nconst filterMinutesDivisibleBy = (n: number) => {\n return (d: Date) => {\n const minute = d3.utcFormat(\"%M\")(d)\n\n return Number.parseInt(minute) % n !== 0\n }\n}\n\nconst filterMinutesSecondsDivisibleBy = (n: number) => {\n return (d: Date) => {\n const minute = d3.utcFormat(\"%M\")(d)\n const second = d3.utcFormat(\"%S\")(d)\n\n return Number.parseInt(minute) % n !== 0 && Number.parseInt(second) === 0\n }\n}\n\n/**\n * Precision of the timeline ticks\n * (measured in Hours per Pixel)\n */\nconst Precision = {\n _10_seconds: 0.000025,\n _20_seconds: 0.0001,\n _30_seconds: 0.00015,\n _1_minute: 0.0003,\n _2_minutes: 0.00075,\n _5_minutes: 0.002,\n _15_minutes: 0.005,\n _30_minutes: 0.01,\n _1_hour: 0.025,\n _2_hours: 0.05,\n _3_hours: 0.1,\n _4_hours: 0.15,\n _6_hours: 0.25,\n _1_day: 1,\n _2_days: 2,\n _1_month: 8,\n _1_month_abbr: 13,\n _1_month_letter: 22,\n _3_months: 33,\n infinity: Infinity,\n}\n\n/**\n * Map of formats and ticks intervals for the Timeline axis(s) by type.\n */\nexport const defaultAxesConfig: TimelineAxesConfig = {\n [TimelineAxis.overview]: [\n {\n precision: Precision._30_seconds,\n interval: d3.utcMinute.every(2),\n format: getFormattedOverviewMinuteSecond,\n },\n {\n precision: Precision._1_minute,\n interval: d3.utcMinute.every(5),\n format: getFormattedOverviewMinuteSecond,\n },\n {\n precision: Precision._2_minutes,\n interval: d3.utcMinute.every(10),\n format: getFormattedOverviewHour,\n },\n {\n precision: Precision._5_minutes,\n interval: d3.utcMinute.every(20),\n format: getFormattedDayHourMinute,\n },\n {\n precision: Precision._15_minutes,\n interval: d3.utcHour,\n format: getFormattedDayHourMinute,\n },\n {\n precision: Precision._30_minutes,\n interval: d3.utcHour.every(2),\n format: getFormattedDayHourMinute,\n },\n {\n precision: Precision._2_hours,\n interval: d3.utcHour.every(6),\n format: (d: Date) => {\n const hour = getFormattedHourMinute(d)\n const day = getFormattedDay(d)\n const month = d3.utcFormat(\"%B\")(d)\n\n return hour || `${month} ${day}`\n },\n },\n {\n precision: Precision._3_hours,\n interval: d3.utcHour.every(12),\n format: getFormattedOverviewHour,\n },\n {\n precision: Precision._6_hours,\n interval: d3.utcHour.every(24),\n format: (d: Date) => {\n const day = getFormattedDay(d)\n const abbreviatedMonth = d3.utcFormat(\"%b\")(d)\n\n return `${abbreviatedMonth} ${day}`\n },\n },\n {\n precision: Precision._2_days,\n interval: d3.utcMonth,\n format: (d: Date) => {\n const startOfTheYear = d.getUTCMonth() === 0 && d.getUTCDate() === 1\n const format = startOfTheYear ? \"%Y – %B\" : \"%B\"\n\n return d3.utcFormat(format)(d)\n },\n },\n {\n precision: Precision.infinity,\n interval: d3.utcYear,\n format: \"%Y\",\n },\n ],\n [TimelineAxis.detailed]: [\n {\n precision: Precision._10_seconds,\n interval: d3.utcSecond.every(10),\n format: getFormattedMinuteSecond,\n },\n {\n precision: Precision._20_seconds,\n interval: d3.utcSecond\n .every(20)\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\n format: getFormattedMinuteSecond,\n },\n {\n precision: Precision._30_seconds,\n interval: d3.utcSecond\n .every(30)\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\n format: getFormattedMinuteSecond,\n },\n {\n precision: Precision._1_minute,\n interval: d3.utcMinute.filter(filterMinutesDivisibleBy(5)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._2_minutes,\n interval: d3.utcMinute.every(2)?.filter(filterMinutesDivisibleBy(10)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._5_minutes,\n interval: d3.utcMinute.every(5)?.filter(filterMinutesDivisibleBy(20)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._15_minutes,\n interval: d3.utcMinute.every(15)?.filter(filterHourDivisibleBy(1)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._30_minutes,\n interval: d3.utcMinute.every(30)?.filter(filterHourDivisibleBy(2)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._1_hour,\n interval: d3.utcHour.filter(filterHourDivisibleBy(6)),\n format: getFormattedHour,\n },\n {\n precision: Precision._2_hours,\n interval: d3.utcHour.every(2)?.filter(filterHourDivisibleBy(6)),\n format: getFormattedHour,\n },\n {\n precision: Precision._3_hours,\n interval: d3.utcHour.every(3)?.filter(filterHourDivisibleBy(12)),\n format: getFormattedHour,\n },\n {\n precision: Precision._4_hours,\n interval: d3.utcHour.every(4),\n format: getFormattedHour,\n },\n {\n precision: Precision._6_hours,\n interval: d3.utcHour.every(6),\n format: getFormattedHour,\n },\n {\n precision: Precision._1_day,\n interval: d3.utcDay,\n format: getFormattedDayNoEndOfMonth,\n },\n {\n precision: Precision._2_days,\n interval: d3.utcDay.every(2),\n format: getFormattedDayNoEndOfMonth,\n },\n {\n precision: Precision._1_month,\n interval: d3.utcMonth,\n format: \"%B\",\n },\n {\n precision: Precision._1_month_abbr,\n interval: d3.utcMonth,\n format: \"%b\",\n },\n {\n precision: Precision._1_month_letter,\n interval: d3.utcMonth,\n format: (d: Date) => d3.utcFormat(\"%B\")(d).charAt(0),\n },\n {\n precision: Precision._3_months,\n interval: d3.utcMonth.every(3),\n format: \"Q%q\",\n },\n {\n precision: Precision.infinity,\n interval: d3.utcMonth.every(3),\n format: \"\",\n },\n ],\n [TimelineAxis.detailedBackground]: [\n {\n precision: Precision._10_seconds,\n interval: d3.utcSecond,\n format: \"\",\n },\n {\n precision: Precision._20_seconds,\n interval: d3.utcSecond.every(5),\n format: \"\",\n },\n {\n precision: Precision._30_seconds,\n interval: d3.utcSecond.every(10),\n format: \"\",\n },\n {\n precision: Precision._1_minute,\n interval: d3.utcSecond.every(20),\n format: \"\",\n },\n {\n precision: Precision._2_minutes,\n interval: d3.utcSecond.every(30),\n format: \"\",\n },\n {\n precision: Precision._5_minutes,\n interval: d3.utcMinute,\n format: \"\",\n },\n {\n precision: Precision._15_minutes,\n interval: d3.utcMinute.every(3),\n format: \"\",\n },\n {\n precision: Precision._30_minutes,\n interval: d3.utcMinute.every(6),\n format: \"\",\n },\n {\n precision: Precision._1_hour,\n interval: d3.utcMinute.every(15),\n format: \"\",\n },\n {\n precision: Precision._2_hours,\n interval: d3.utcMinute.every(30),\n format: \"\",\n },\n {\n precision: Precision._3_hours,\n interval: d3.utcHour,\n format: \"\",\n },\n {\n precision: Precision._4_hours,\n interval: d3.utcHour,\n format: \"\",\n },\n {\n precision: Precision._6_hours,\n interval: d3.utcMinute.every(120),\n format: \"\",\n },\n {\n precision: Precision._1_day,\n interval: d3.utcHour.every(8),\n format: \"\",\n },\n {\n precision: Precision._2_days,\n interval: d3.utcHour.every(12),\n format: \"\",\n },\n {\n precision: Precision._1_month,\n interval: d3.utcDay.filter((d: Date) => {\n const dayOfMonth = d.getUTCDate()\n const daysInMonth = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n 0\n ).getUTCDate()\n const fifthOfMonth = Math.ceil(daysInMonth / 5) // 1/4 of the month\n\n return (\n dayOfMonth === fifthOfMonth ||\n dayOfMonth === 2 * fifthOfMonth ||\n dayOfMonth === 3 * fifthOfMonth ||\n dayOfMonth === 4 * fifthOfMonth\n )\n }),\n format: \"\",\n },\n {\n precision: Precision._1_month_abbr,\n interval: d3.utcDay.filter((d: Date) => {\n const dayOfMonth = d.getUTCDate()\n const daysInMonth = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n 0\n ).getUTCDate()\n const quarterOfTheMonth = Math.ceil(daysInMonth / 4) // 1/4 of the month\n\n return (\n dayOfMonth === quarterOfTheMonth ||\n dayOfMonth === 2 * quarterOfTheMonth ||\n dayOfMonth === 3 * quarterOfTheMonth\n )\n }),\n format: \"\",\n },\n {\n precision: Precision._1_month_letter,\n interval: d3.utcDay.filter((d: Date) => {\n const dayOfMonth = d.getUTCDate()\n const daysInMonth = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n 0\n ).getUTCDate()\n const halfOfTheMonth = Math.ceil(daysInMonth / 2) // 1/4 of the month\n\n return dayOfMonth === halfOfTheMonth\n }),\n format: \"\",\n },\n {\n precision: Precision._3_months,\n interval: d3.utcMonth,\n format: \"\",\n },\n {\n precision: Precision.infinity,\n interval: d3.utcMonth,\n format: \"\",\n },\n ],\n}\n","import { DirectiveOptions } from \"vue\"\n\nexport interface ObservedElement extends HTMLElement {\n __resizeObserver__?: ResizeObserver\n}\n\nconst ResizeObserverDirective: DirectiveOptions = {\n bind(el, binding) {\n const { value: callback } = binding\n\n if (typeof callback !== \"function\") {\n console.error(\"Invalid callback function provided to v-resize-observer\")\n\n return\n }\n\n const observer: ResizeObserver = new ResizeObserver(\n (entries: ResizeObserverEntry[]) => {\n if (!entries[0]) {\n return\n }\n\n callback(entries[0])\n }\n )\n\n observer.observe(el)\n ;(el as ObservedElement).__resizeObserver__ = observer\n },\n unbind(el) {\n if ((el as ObservedElement).__resizeObserver__) {\n ;(el as ObservedElement).__resizeObserver__!.disconnect()\n delete (el as ObservedElement).__resizeObserver__\n }\n },\n}\n\nexport default ResizeObserverDirective\n","import ResizeObserverDirective from \"@/directives/resize-observer\"\n\nexport const DirectivesMap = [\n {\n name: \"resize-observer\",\n definition: ResizeObserverDirective,\n },\n]\n\nexport { ResizeObserverDirective }\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {};\n\nfunction addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n}\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {};\n\nfunction addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n}\n\nfunction set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('k', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIORITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\n// TODO: Use this.as('ms')?\nfunction valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.29.4';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","//! moment-timezone.js\n//! version : 0.5.43\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.43\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","\nimport * as d3 from \"d3\"\nimport Vue, { PropType } from \"vue\"\nimport { D3ZoomEvent, Axis, ZoomBehavior } from \"d3\"\nimport { defaultAxesConfig } from \"@/components/ETimeline.config\"\nimport {\n TimelineAxesConfig,\n TimelineAxis,\n TimelineTicksConfig,\n Timestamp,\n} from \"@/types\"\nimport { ResizeObserverDirective } from \"@/directives\"\nimport moment from \"moment-timezone\"\n\nexport type TimelineEvent =\n | {\n timestamp: string | Date\n [key: string]: any\n }\n | {\n startDate: string | Date\n endDate: string | Date\n [key: string]: any\n }\n\nexport type TimelineEventsGroup = {\n label: string\n color: string\n events: Array<TimelineEvent>\n}\n\nexport type TimelineEventsByType = {\n [eventsType: string]: TimelineEventsGroup\n}\n\nconst classes = {\n eventGroup: \"event-group\",\n eventGroupBg: \"event-group-bg\",\n labelBg: \"label-bg\",\n labelBgFill: \"label-bg-fill\",\n labelText: \"label-text\",\n xAxis: \"x-axis\",\n selectedTimestampCursor: \"selected-timestamp-cursor\",\n}\n\nexport default Vue.extend({\n name: \"ETimeline\",\n directives: {\n resizeObserver: ResizeObserverDirective,\n },\n props: {\n eventsGroups: {\n type: Object as PropType<TimelineEventsByType>,\n default: () => ({}),\n },\n xAxesConfig: {\n type: Object as PropType<TimelineAxesConfig>,\n default: () => defaultAxesConfig,\n },\n dark: {\n type: Boolean,\n default: false,\n },\n startDate: {\n type: String,\n default: undefined,\n },\n endDate: {\n type: String,\n default: undefined,\n },\n selectedTimestamp: {\n type: String,\n default: undefined,\n },\n showEventTooltip: {\n type: Boolean,\n default: true,\n },\n disableZoom: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n tooltip: null as unknown as HTMLElement,\n cursor: null as unknown as HTMLElement,\n timeline: null as unknown as HTMLElement,\n selectedTimestampCursor: null as unknown as HTMLElement,\n svg: null as unknown as d3.Selection<SVGSVGElement, any, any, any>,\n axesContainer: null as unknown as d3.Selection<\n SVGGElement,\n any,\n any,\n any\n >,\n xAxes: {} as unknown as Record<TimelineAxis, Axis<Date>>,\n timeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\n initialTimeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\n currentTimeScaleDensity: null as unknown as number,\n zoomBehavior: null as unknown as ZoomBehavior<SVGSVGElement, unknown>,\n isMouseDown: false,\n axisHeight: 22,\n eventGroupHeight: 18,\n eventGroupPadding: 0,\n isHoveringEvent: false,\n hoveredEvent: null as unknown as TimelineEvent,\n isHoveringTimeline: false,\n hoveredTimestamp: null as unknown as string,\n eventTooltipStyle: {},\n hoveredEventType: null as unknown as string,\n utcOffset: 0,\n }\n },\n computed: {\n classes() {\n return {\n wrapper: this.dark\n ? \"e-border-gray-700 e-timeline--dark\"\n : \"e-border-gray-300\",\n background: this.dark ? \"e-bg-gray-900\" : \"e-bg-gray-50\",\n tooltipSlot: this.dark\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\n }\n },\n labelRectWidth(): number {\n const eventsGroups = Object.values(\n this.eventsGroups\n ) as TimelineEventsGroup[]\n const maxLabelLength = eventsGroups.reduce((acc, eventsGroup) => {\n return Math.max(acc, eventsGroup.label?.length)\n }, 0)\n\n return maxLabelLength * 7.5 + 5\n },\n combinedXAxesHeight(): number {\n const axesCount = Object.keys(this.xAxesConfig).length - 1\n\n return this.axisHeight * axesCount\n },\n timelineHeight(): number {\n const eventsGroupsCount = Object.keys(this.eventsGroups).length\n const padding = this.eventGroupPadding * (eventsGroupsCount - 1)\n const eventsGouprsHeight = this.eventGroupHeight * eventsGroupsCount\n\n return this.combinedXAxesHeight + eventsGouprsHeight + padding\n },\n allEventsSorted(): TimelineEvent[] {\n const flattenedEvents = (\n Object.values(this.eventsGroups) as TimelineEventsGroup[]\n )\n .map((e: TimelineEventsGroup) => e.events)\n .flat()\n\n return flattenedEvents.sort((a, b) =>\n new Date(a.timestamp || a.startDate) >\n new Date(b.timestamp || b.startDate)\n ? 1\n : -1\n )\n },\n oldestEvent(): TimelineEvent {\n let oldestEvent\n if (this.allEventsSorted.length > 1) {\n oldestEvent = this.allEventsSorted[0]\n } else {\n const DAY = 86_400_000\n const yesterday = new Date(new Date().getTime() - DAY)\n\n oldestEvent = {\n timestamp: yesterday,\n }\n }\n\n return oldestEvent\n },\n latestEvent(): TimelineEvent {\n let latestEvent\n if (this.allEventsSorted.length > 1) {\n latestEvent = this.allEventsSorted[this.allEventsSorted.length - 1]\n } else {\n const defaultMaxDate = new Date()\n\n latestEvent = {\n timestamp: defaultMaxDate,\n }\n }\n\n return latestEvent\n },\n },\n watch: {\n dark() {\n this.onDarkModeChange()\n },\n selectedTimestamp() {\n this.repositionSelectedTimestampCursor()\n },\n startDate() {\n this.zoomToStartAndEndDates()\n },\n endDate() {\n this.zoomToStartAndEndDates()\n },\n },\n mounted() {\n this.initTimeline()\n },\n beforeDestroy() {\n document.removeEventListener(\"mouseup\", this.handleDocumentMouseUp)\n },\n methods: {\n tzStringToDate(timestamp: Timestamp): Date {\n return moment(timestamp).add(this.utcOffset, \"minutes\").toDate()\n },\n dateToTzString(date: Date): string {\n const userUtcOffset = new Date(date).getTimezoneOffset()\n\n return moment(date)\n .add(userUtcOffset, \"minutes\")\n .utcOffset(this.utcOffset, true)\n .format()\n },\n getFormattedTimestamp(timestamp: Timestamp): string {\n return moment.parseZone(timestamp).format(\"YYYY-MM-DDTHH:mm:ss\")\n },\n handleResize({ contentRect }: ResizeObserverEntry) {\n if (this.svg) {\n this.svg.attr(\"width\", contentRect.width)\n }\n },\n initTimeline() {\n this.initRefs()\n\n if (!this.timeline) {\n setTimeout(this.initTimeline, 500)\n\n return\n }\n\n this.initSvg()\n this.initUtcOffset()\n this.initTimeScale()\n this.initXAxes()\n this.initZoomBehavior()\n this.drawEventsGroups()\n this.initSelectedTimestampCursor()\n this.registerEventsListeners()\n },\n initRefs() {\n this.tooltip = this.$refs.tooltip as HTMLElement\n this.cursor = this.$refs.cursor as HTMLElement\n this.timeline = this.$refs.timelineContainer as HTMLElement\n this.selectedTimestampCursor = this.$refs.selectedTimestamp as HTMLElement\n },\n initSvg() {\n this.svg = d3\n .select(this.timeline)\n .append(\"svg\")\n .attr(\"width\", this.timeline.offsetWidth)\n .attr(\"height\", this.timelineHeight) as d3.Selection<\n SVGSVGElement,\n any,\n any,\n any\n >\n },\n initUtcOffset() {\n const sampleTimestamp =\n this.startDate ||\n this.oldestEvent.timestamp ||\n this.oldestEvent.startDate\n this.utcOffset = moment.parseZone(sampleTimestamp).utcOffset()\n },\n initTimeScale() {\n const startDate =\n this.startDate ||\n this.oldestEvent.timestamp ||\n this.oldestEvent.startDate\n const endDate =\n this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate\n\n this.timeScale = d3\n .scaleTime()\n .domain([this.tzStringToDate(startDate), this.tzStringToDate(endDate)])\n .range([0, this.timeline.offsetWidth])\n\n this.initialTimeScale = this.timeScale.copy()\n this.updateCurrentTimeScaleDensity()\n },\n initXAxes() {\n let i = 0\n const padding = 5\n for (const axisName in this.xAxesConfig) {\n const axis = this.createAxis(axisName as TimelineAxis)\n this.xAxes[axisName as TimelineAxis] = axis\n this.svg\n .append(\"g\")\n .classed(classes.xAxis, true)\n .classed(`${classes.xAxis}-${axisName}`, true)\n .attr(\"transform\", `translate(0, ${i || padding})`)\n .call(axis)\n\n this.translateTicksText(axisName)\n i += this.axisHeight\n }\n },\n createAxis(axisName: TimelineAxis) {\n const axis = this.xAxesConfig[axisName as TimelineAxis]\n const config = this.getAxisTicksConfig(axis)\n\n return d3\n .axisBottom<Date>(this.timeScale)\n .ticks(config.interval)\n .tickFormat((d) => config.formatFn(d))\n .tickSizeOuter(0)\n .tickSizeInner(this.timelineHeight)\n },\n getAxisTicksConfig(configs: TimelineTicksConfig[]) {\n const { interval, format } = configs.find(\n (config) =>\n config.precision >= this.currentTimeScaleDensity && config.interval\n ) as TimelineTicksConfig\n\n const formatFn = (d: Date): string => {\n return typeof format === \"function\"\n ? format(d)\n : d3.timeFormat(format)(d)\n }\n\n return {\n formatFn,\n interval,\n }\n },\n initZoomBehavior() {\n if (this.disableZoom) {\n return\n }\n\n this.zoomBehavior = d3\n .zoom<SVGSVGElement, unknown>()\n .on(\"zoom\", this.handleZoom)\n .scaleExtent([0.25, 750_000])\n\n this.svg.call(this.zoomBehavior)\n },\n initSelectedTimestampCursor() {\n this.svg\n .append(\"line\")\n .attr(\"class\", classes.selectedTimestampCursor)\n .style(\"stroke\", \"red\")\n .style(\"stroke-width\", \"1px\")\n .style(\"opacity\", 0)\n .attr(\"x1\", 0)\n .attr(\"x2\", 0)\n .attr(\"y1\", 0)\n .attr(\"y2\", this.timelineHeight)\n this.repositionSelectedTimestampCursor()\n },\n repositionSelectedTimestampCursor() {\n const cursor = this.svg.select(`.${classes.selectedTimestampCursor}`)\n if (!this.selectedTimestamp) {\n cursor.style(\"opacity\", 0)\n\n return\n }\n const timestamp = this.tzStringToDate(this.selectedTimestamp)\n const cursorX = this.timeScale(timestamp)\n if (!isNaN(cursorX)) {\n cursor.attr(\"x1\", cursorX).attr(\"x2\", cursorX).style(\"opacity\", 0.5)\n } else {\n cursor.style(\"opacity\", 0)\n }\n },\n updateCurrentTimeScaleDensity() {\n const timeAtPixel0 = this.timeScale.invert(0).getTime()\n const timeAtPixel1 = this.timeScale.invert(1).getTime()\n const HOUR = 3_600_000\n\n this.currentTimeScaleDensity = (timeAtPixel1 - timeAtPixel0) / HOUR\n },\n registerEventsListeners() {\n document.addEventListener(\"mouseup\", this.handleDocumentMouseUp)\n this.svg.on(\"mousedown\", this.handleMouseDown)\n this.svg.on(\"mousemove\", this.handleMouseMove)\n this.svg.on(\"click\", this.handleClick)\n this.svg.on(\"mouseleave\", this.handleMouseLeave)\n },\n handleMouseDown() {\n this.isMouseDown = true\n },\n handleDocumentMouseUp() {\n this.isMouseDown = false\n },\n handleMouseLeave() {\n this.isHoveringTimeline = false\n },\n handleMouseMove(event: MouseEvent) {\n if (this.isMouseDown) {\n return\n }\n const mouseX = event.offsetX\n const date = this.timeScale.invert(mouseX)\n this.hoveredTimestamp = this.dateToTzString(date)\n this.isHoveringTimeline = true\n this.cursor.style.left = mouseX + \"px\"\n\n if (!this.tooltip) {\n return\n }\n\n this.eventTooltipStyle = {\n left: `${mouseX}px`,\n bottom: `${this.timeline.getBoundingClientRect().height}px`,\n }\n this.repositionSelectedTimestampCursor()\n },\n handleClick(event: MouseEvent) {\n const mouseX = event.offsetX\n const date = this.timeScale.invert(mouseX)\n const formattedDateTz = this.dateToTzString(date)\n\n this.$emit(\"date-clicked\", formattedDateTz)\n },\n handleEventMouseOver(\n _event: MouseEvent,\n eventData: TimelineEvent,\n eventType: string\n ) {\n this.hoveredEvent = eventData\n this.hoveredEventType = eventType\n this.isHoveringEvent = true\n this.$emit(\"event-mouseover\", { eventData, eventType })\n },\n handleEventMouseOut() {\n this.isHoveringEvent = false\n this.hoveredEvent = null as unknown as TimelineEvent\n this.$emit(\"event-mouseout\")\n },\n handleZoom(event: D3ZoomEvent<SVGSVGElement, any>) {\n const newScale = event.transform.rescaleX(this.initialTimeScale)\n this.timeScale.domain(newScale.domain())\n this.updateCurrentTimeScaleDensity()\n\n for (const axisName in this.xAxes) {\n this.rescaleAxis(axisName, newScale)\n this.translateTicksText(axisName)\n }\n this.updateEventsRects()\n this.repositionSelectedTimestampCursor()\n },\n zoomToStartAndEndDates() {\n const startDate =\n this.startDate ||\n this.oldestEvent.timestamp ||\n this.oldestEvent.startDate\n const endDate =\n this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate\n\n const startTime = this.tzStringToDate(startDate)\n const endTime = this.tzStringToDate(endDate)\n const timelineWidth = this.timeline.offsetWidth\n const newDomain = [startTime, endTime]\n const newRange = [0, timelineWidth]\n\n this.timeScale = d3.scaleTime().domain(newDomain).range(newRange)\n this.initialTimeScale = this.timeScale.copy()\n\n this.updateCurrentTimeScaleDensity()\n for (const axisName in this.xAxes) {\n this.rescaleAxis(axisName, this.timeScale)\n this.translateTicksText(axisName)\n }\n this.updateEventsRects()\n this.repositionSelectedTimestampCursor()\n },\n rescaleAxis(axisName: string, newScale: d3.ScaleTime<any, any, unknown>) {\n const axis: Axis<Date> = this.xAxes[axisName as TimelineAxis]\n const ticksConfig = this.getAxisTicksConfig(\n this.xAxesConfig[axisName as TimelineAxis]\n )\n axis\n .scale(newScale)\n .ticks(ticksConfig.interval)\n .tickFormat((d) => ticksConfig.formatFn(d))\n .tickSizeOuter(0)\n this.svg.select<SVGGElement>(`.${classes.xAxis}-${axisName}`).call(axis)\n },\n translateTicksText(axisName: string) {\n this.svg\n .select<SVGGElement>(`.${classes.xAxis}-${axisName}`)\n .selectAll(\".tick text\")\n .each(function () {\n let textElement = d3.select(this as SVGTextElement)\n let textBBox = (textElement.node() as SVGGraphicsElement).getBBox()\n textElement\n .attr(\"x\", textBBox.height / 2)\n .attr(\"y\", 0)\n .style(\"text-anchor\", \"start\")\n })\n },\n updateEventsRects() {\n const rectsSelector = `.${classes.eventGroup} > rect:not(.${classes.labelBg}):not(.${classes.labelBgFill}):not(.${classes.eventGroupBg})`\n this.svg\n .selectAll<SVGRectElement, TimelineEvent>(rectsSelector)\n .attr(\"x\", this.getEventRectX)\n .attr(\"width\", this.getEventRectWidth)\n .attr(\"height\", this.eventGroupHeight)\n },\n getEventRectX(d: TimelineEvent) {\n return this.timeScale(this.tzStringToDate(d.startDate || d.timestamp))\n },\n getEventRectWidth(d: TimelineEvent) {\n if (!d) {\n return 0\n }\n if (d.startDate && d.endDate) {\n const startTimestamp = new Date(d.startDate)\n const endTimestamp = new Date(d.endDate)\n const width =\n this.timeScale(endTimestamp) - this.timeScale(startTimestamp)\n\n return Math.max(width, 1)\n } else {\n const oneSecondWidth = 1 / (this.currentTimeScaleDensity * 3600)\n\n return Math.max(oneSecondWidth, 1)\n }\n },\n drawEventsGroups() {\n this.svg.selectAll(`g.${classes.eventGroup}`).remove()\n Object.entries(this.eventsGroups).forEach(\n ([type, eventsGroup], index) => {\n const { color, label, events } = eventsGroup as TimelineEventsGroup\n const padding = index === 0 ? 0 : this.eventGroupPadding\n const yPosition =\n index * (this.eventGroupHeight + padding) + this.combinedXAxesHeight\n const gElement = this.svg\n .append(\"g\")\n .attr(\"data-color\", color)\n .classed(classes.eventGroup, true)\n .classed(`${classes.eventGroup}-${type}`, true)\n\n this.drawBackground({\n color,\n gElement,\n yPosition,\n })\n\n this.drawEvents({\n events,\n color,\n gElement,\n yPosition,\n type,\n })\n\n this.drawTextLabel({\n color,\n label,\n gElement,\n yPosition,\n })\n }\n )\n },\n drawBackground({\n color,\n yPosition,\n gElement,\n }: {\n gElement: d3.Selection<SVGGElement, any, any, any>\n yPosition: number\n color: string\n }) {\n gElement\n .append(\"rect\")\n .attr(\"class\", classes.eventGroupBg)\n .attr(\"x\", 0)\n .attr(\"y\", yPosition)\n .attr(\"width\", this.timeline.offsetWidth)\n .attr(\"height\", this.eventGroupHeight)\n .attr(\"fill\", d3.color(color)!.toString())\n .style(\"opacity\", 0.1)\n },\n drawEvents({\n events,\n gElement,\n yPosition,\n color,\n type,\n }: {\n events: TimelineEvent[]\n gElement: d3.Selection<SVGGElement, any, any, any>\n yPosition: number\n color: string\n type: string\n }) {\n gElement\n .selectAll(\"rect\")\n .data(events)\n .enter()\n .append(\"rect\")\n .attr(\"x\", this.getEventRectX)\n .attr(\"y\", yPosition)\n .attr(\"ry\", 1.5)\n .attr(\"rx\", 1.5)\n .attr(\"width\", this.getEventRectWidth)\n .attr(\"height\", this.eventGroupHeight)\n .attr(\"stroke-width\", 5)\n .attr(\"cursor\", \"pointer\")\n .attr(\"stroke\", \"#0000\")\n .style(\"fill\", color)\n .on(\"mouseover\", (event, eventData) =>\n this.handleEventMouseOver(event, eventData, type)\n )\n .on(\"mouseout\", () => this.handleEventMouseOut())\n },\n drawTextLabel({\n gElement,\n yPosition,\n color,\n label,\n }: {\n gElement: d3.Selection<SVGGElement, any, any, any>\n yPosition: number\n color: string\n label: string\n }) {\n const bg = {\n x: -5,\n y: yPosition,\n w: this.labelRectWidth + 5,\n h: this.eventGroupHeight,\n radius: 3,\n }\n\n // Label rect background\n gElement\n .append(\"rect\")\n .attr(\"class\", classes.labelBg)\n .attr(\"x\", bg.x)\n .attr(\"y\", bg.y)\n .attr(\"width\", bg.w)\n .attr(\"height\", bg.h)\n .attr(\"rx\", bg.radius)\n .attr(\"ry\", bg.radius)\n .style(\"fill\", this.dark ? \"#131a29\" : \"white\")\n\n // Label rect fill\n gElement\n .append(\"rect\")\n .attr(\"class\", classes.labelBgFill)\n .attr(\"x\", bg.x)\n .attr(\"y\", bg.y)\n .attr(\"width\", bg.w)\n .attr(\"height\", bg.h)\n .attr(\"rx\", bg.radius)\n .attr(\"ry\", bg.radius)\n .style(\"fill\", this.getLabelBackgroundColor(color))\n .style(\"stroke\", this.getTextFillColor(color))\n .style(\"stroke-width\", 0.25)\n\n // Label text\n gElement\n .append(\"text\")\n .attr(\"class\", classes.labelText)\n .attr(\"x\", 5)\n .attr(\"y\", yPosition + this.eventGroupHeight / 2)\n .attr(\"dy\", \"0.35em\")\n .style(\"text-anchor\", \"start\")\n .style(\"font-size\", \"12px\")\n .style(\"font-weight\", 500)\n .style(\"stroke-linejoin\", \"round\")\n .style(\"paint-order\", \"stroke\")\n .style(\"fill\", this.getTextFillColor(color))\n .text(label)\n },\n getTextFillColor(baseColor: string) {\n return (\n this.dark\n ? d3.color(baseColor)?.brighter(1.5)\n : d3.color(baseColor)?.darker(2)\n )!.toString()\n },\n getLabelBackgroundColor(baseColor: string) {\n let color = d3.color(baseColor)\n color!.opacity = this.dark ? 0.2 : 0.5\n\n return color!.toString()\n },\n onDarkModeChange() {\n Object.entries(this.eventsGroups).forEach(([type, _eventsGroup]) => {\n const gElement = this.svg.select(`.${classes.eventGroup}-${type}`)\n\n const color = (gElement.node()! as HTMLElement).dataset.color\n gElement\n .select(`.${classes.labelBg}`)\n .style(\"fill\", this.dark ? \"black\" : \"white\")\n gElement\n .select(`.${classes.labelBgFill}`)\n .style(\"fill\", this.getLabelBackgroundColor(color as string))\n .style(\"stroke\", this.getTextFillColor(color as string))\n .style(\"stroke-width\", 0.25)\n gElement\n .select(`.${classes.labelText}`)\n .style(\"fill\", this.getTextFillColor(color as string))\n })\n },\n },\n})\n","// Components\nimport EAvatar from \"@/components/EAvatar.vue\"\nimport EBadge from \"@/components/EBadge.vue\"\nimport EIcon from \"@/components/EIcon.vue\"\nimport ESpinner from \"@/components/ESpinner.vue\"\nimport ERow from \"@/components/ERow.vue\"\nimport ECol from \"@/components/ECol.vue\"\nimport EVideoPlayer from \"@/components/EVideoPlayer.vue\"\nimport ETimeline from \"@/components/ETimeline.vue\"\n\n// Directives\nimport { DirectivesMap } from \"@/directives\"\n\nimport { VueConstructor } from \"vue\"\n\nexport const components = {\n EAvatar,\n EBadge,\n EIcon,\n ESpinner,\n ERow,\n ECol,\n EVideoPlayer,\n ETimeline,\n}\n\nexport default {\n install(Vue: VueConstructor) {\n // Register components\n Object.keys(components).forEach((name) => {\n // @ts-ignore\n Vue.component(name, components[name])\n })\n\n // Register directives\n DirectivesMap.forEach(({ name, definition }) => {\n Vue.directive(name, definition)\n })\n },\n}\n\nexport { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline }\n\nexport * from \"@/constants\"\n\nexport * from \"@/types\"\n\nexport * from \"@/utils\"\n\nexport * from \"@/directives\"\n"],"names":["Size","BaseColor","TimelineAxis","_sfc_main$7","Vue","colorClasses","sizeClasses","_sfc_main$6","Badge","exports","negateValue","value","sign","numericFunctions","fn","_default","pluginConfig","plugins","pluginName","x","create","picocolors_browserModule","_export","target","all","name","dim","_picocolors","_interop_require_default","require$$0","obj","alreadyShown","log","type","messages","key","message","input","_log","warn","version","from","to","defaults","sources","source","k","_target_hasOwnProperty","_target_hasOwnProperty1","toPath","path","openBrackets","closedBrackets","flagEnabled","issueFlagNotices","require$$1","featureFlags","config","flag","_config_future","_config_future_flag","_ref","_config_experimental","_config_experimental_flag","_ref1","experimentalFlagsEnabled","changes","s","normalizeConfig","_featureFlags","_interop_require_wildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","_purge_options","content","purge","safelist","blocklist","item","_config_prefix","extract","_config_purge","_config_content","_config_purge1","_config_purge_extract","_config_content1","_config_content_extract","_config_purge2","_config_purge_options","_config_content2","_config_content_options","extractors","defaultExtractor","extensions","extractor","extension","transform","_config_purge_transform","_config_content_transform","transformers","file","isPlainObject","prototype","cloneDeep","child","v","escapeCommas","className","parseColor","formatColor","_colorNames","HEX","SHORT_HEX","VALUE","SEP","ALPHA_SEP","CUSTOM_PROPERTY","RGB","HSL","loose","_match_","_match__toString","hex","_","r","g","b","a","_value_match","match","color","part","mode","alpha","hasAlpha","withAlphaValue","withAlphaVariable","_color","alphaValue","defaultValue","parsed","property","variable","properties","p","splitAtTopLevelOnly","separator","stack","parts","lastPos","isEscaped","idx","char","parseBoxShadowValue","formatBoxShadowValue","_splitAtTopLevelOnly","KEYWORDS","SPACE","LENGTH","shadow","result","seen","shadows","normalize","url","number","percentage","length","lineWidth","image","gradient","position","familyName","genericName","absoluteSize","relativeSize","_parseBoxShadowValue","require$$2","cssFunctions","isCSSFunction","placeholder","placeholderRe","isRoot","fullMatch","characterBefore","normalizeMathOperatorSpacing","vars","g1","lengthUnitsPattern","lineWidths","parsedShadows","parsedShadow","colors","images","gradientTypes","validPositions","positions","fonts","genericNames","absoluteSizes","relativeSizes","backgroundSize","_dataTypes","keywordValues","sizes","size","updateAllClasses","asValue","parseColorFormat","asColor","asLookupValue","typeMap","coerceValue","getMatchingTypes","_escapeCommas","_withAlphaVariable","_negateValue","require$$3","_validateFormalSyntax","require$$4","require$$5","selectors","updateClass","sel","resolveArbitraryValue","modifier","validate","isArbitraryValue","asNegativeValue","lookup","positiveValue","resolved","options","_options_values","splitUtilityModifier","slashIdx","oldValue","opacityValue","unwrapArbitraryModifier","tailwindConfig","_options_values1","_options_values2","_tailwindConfig_theme","_tailwindConfig_theme_opacity","_options_values_color","normalizedColor","guess","supportedTypes","splitAtFirst","delim","types","arbitraryValue","explicitType","matches","rawModifier","modifiersEnabled","utilityModifier","_options_modifiers","_options_modifiers_utilityModifier","configValue","toColorValue","maybeFunction","resolveConfig","_corePluginList","_configurePlugins","_colors","_defaults","_toPath","_normalizeConfig","require$$6","_isPlainObject","require$$7","_cloneDeep","require$$8","_pluginUtils","require$$9","require$$10","_toColorValue","require$$11","isFunction","mergeWith","customizer","merged","configUtils","scale","negativeScale","negativeValue","screens","breakpoints","valueToResolve","args","collectExtends","items","extend","mergedValue","extendValue","mergeThemes","themes","theme","mergeExtensionCustomizer","mergeExtensions","themeValue","resolveThemePath","utils","e","toPaths","pattern","prefix","newPath","resolveFunctionKeys","object","resolvePath","index","val","normalized","extractPluginConfigs","configs","allConfigs","_config_plugins","plugin","_plugin_config","resolveCorePlugins","corePluginConfigs","corePluginConfig","resolvePluginLists","pluginLists","pluginList","_t_theme","_c_plugins","t","c","config_full","getAllConfigs","_configfull","_config_presets","preset","features","experimentals","feature","_resolveConfig","_getAllConfigs","defaultConfigs","resolveConfig_1","colors_1","BrandColors","customColors","TailwindColors.white","TailwindColors.amber","TailwindColors.rose","TailwindColors.cyan","TailwindColors.lime","TailwindColors.sky","CustomColors","TailwindColors.slate","fullConfig","TextSizes","Colors","BadgeSizes","AvatarSizes","IconSizes","BadgeColors","EVENTS","_sfc_main$5","acc","iconClasses","_b","_a","_sfc_main$4","fill","animationDuration","_sfc_main$3","_sfc_main$2","prop","acceptUndefined","n","isFullScreen","makeFullScreen","element","resolve","exitFullScreen","leadingZeroFormatter","VIDEO_PLAYER_EVENTS","formatDuration","time","seconds","minutes","hours","_sfc_main$1","ESpinner","videoOptions","event","which","player","timelineContainer","playerRef","state","currentTime","percent","rect","duration","videoContainer","playPromise","tagName","getFormattedDay","d","day","d3","daySuffix","getFormattedDayNoEndOfMonth","getFormattedHour","getFormattedHourMinute","HH_MM","getFormattedMinuteSecond","getFormattedOverviewMinuteSecond","getFormattedOverviewHour","hour","month","getFormattedDayHourMinute","filterHourDivisibleBy","filterMinutesDivisibleBy","minute","filterMinutesSecondsDivisibleBy","second","Precision","defaultAxesConfig","format","dayOfMonth","daysInMonth","fifthOfMonth","quarterOfTheMonth","halfOfTheMonth","ResizeObserverDirective","el","binding","callback","observer","entries","DirectivesMap","hookCallback","hooks","setHookCallback","isArray","isObject","hasOwnProp","isObjectEmpty","isUndefined","isNumber","isDate","map","arr","res","i","arrLen","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","m","some","fun","len","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","Moment","isMoment","msg","deprecate","firstTime","arg","argLen","deprecations","deprecateSimple","set","mergeConfigs","parentConfig","childConfig","Locale","keys","defaultCalendar","calendar","mom","now","output","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","array","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","string","isFuture","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","get","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","indexOf","o","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","y","daysInYear","getSetYear","getIsLeapYear","createDate","h","M","ms","date","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","getSetGlobalLocale","values","data","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","months","weeks","days","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","offsetFromString","chunkOffset","matcher","chunk","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","subtract","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","root","factory","module","this","moment","VERSION","zones","links","countries","guesses","cachedGuess","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","whole","fractional","multiplier","num","arrayToInt","intToUntil","mapIndices","indices","unpack","offsets","untils","Zone","packedString","unpacked","timestamp","zone_name","country_code","offsetNext","offsetPrev","tz","Country","country_name","zone_names","OffsetAt","at","timeString","ZoneScore","offsetAt","findChange","low","high","mid","userOffsets","startYear","last","change","sortZoneScores","addToGuesses","guessesForUserOffsets","offsetsLength","filteredGuesses","guessesOffset","rebuildGuess","intlName","normalizeName","zoneScores","zoneScore","getZone","ignoreCache","addZone","packed","caller","link","getNames","getCountryNames","addLink","normal0","normal1","addCountries","country_zones","getCountry","zonesForCountry","country","with_offset","loadData","zoneExists","needsOffset","isUnixTimestamp","z","abbrWrap","old","resetZoneWrap","resetZoneWrap2","momentTimezoneModule","classes","_sfc_main","eventsGroup","axesCount","eventsGroupsCount","padding","eventsGouprsHeight","oldestEvent","latestEvent","userUtcOffset","contentRect","sampleTimestamp","startDate","endDate","axisName","axis","interval","cursor","cursorX","timeAtPixel0","timeAtPixel1","mouseX","formattedDateTz","_event","eventData","eventType","newScale","startTime","endTime","timelineWidth","newDomain","newRange","ticksConfig","textElement","textBBox","rectsSelector","startTimestamp","endTimestamp","width","oneSecondWidth","label","events","yPosition","gElement","bg","baseColor","_eventsGroup","components","EAvatar","EBadge","EIcon","ERow","ECol","EVideoPlayer","ETimeline","definition"],"mappings":"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AAS,GAAGG,CAAE,GAAG,EACvB,MAAO,QAAQH,CAAK,QAGhC,+BClCA,OAAO,eAAwBF,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,YACA,YACA,gBACA,gBACA,aACA,WACA,QACA,YACA,SACA,QACA,aACA,kBACA,gBACA,UACA,eACA,aACA,QACA,QACA,SACA,YACA,YACA,UACA,cACA,SACA,YACA,YACA,QACA,WACA,WACA,OACA,aACA,WACA,YACA,cACA,cACA,iBACA,gBACA,kBACA,YACA,SACA,OACA,QACA,YACA,YACA,SACA,cACA,aACA,SACA,iBACA,kBACA,iBACA,eACA,gBACA,oBACA,gBACA,iBACA,aACA,UACA,cACA,cACA,aACA,kBACA,eACA,eACA,sBACA,mBACA,gBACA,WACA,eACA,aACA,eACA,aACA,iBACA,eACA,MACA,QACA,cACA,cACA,cACA,gBACA,YACA,YACA,cACA,WACA,qBACA,iBACA,eACA,UACA,aACA,YACA,eACA,cACA,cACA,cACA,gBACA,kBACA,oBACA,kBACA,qBACA,qBACA,iBACA,uBACA,iBACA,qBACA,mBACA,mBACA,OACA,SACA,cACA,YACA,iBACA,UACA,YACA,aACA,gBACA,aACA,WACA,aACA,gBACA,YACA,qBACA,aACA,gBACA,YACA,cACA,iBACA,sBACA,sBACA,0BACA,sBACA,gBACA,mBACA,qBACA,aACA,cACA,UACA,sBACA,eACA,YACA,iBACA,eACA,eACA,gBACA,eACA,YACA,YACA,cACA,kBACA,kBACA,OACA,aACA,WACA,aACA,YACA,YACA,SACA,WACA,QACA,SACA,eACA,qBACA,mBACA,oBACA,oBACA,iBACA,kBACA,mBACA,gBACA,iBACA,qBACA,kBACA,qBACA,2BACA,aACA,wCCxLJ,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EA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CL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,IAAK,CACD,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UA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,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOuG,CACV,CACL,CAAC,EACD,SAASA,EAAaC,EAAW,CAC7B,OAAOA,EAAU,QAAQ,OAAQ,OAAO,CAC5C,2CCXA,OAAO,eAAwBxG,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,UAAW,CACP,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,EACA,CACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,MAAO,CACH,IACA,GACA,EACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,EACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,GACA,EACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,SAAU,CACN,EACA,EACA,GACH,EACD,SAAU,CACN,EACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,EACA,IACA,CACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,EACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,EACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,QAAS,CACL,IACA,EACA,CACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,GACA,GACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,EACA,GACH,EACD,SAAU,CACN,IACA,GACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,WAAY,CACR,GACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,YAAa,CACT,GACA,IACA,EACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,OAAQ,CACJ,GACA,EACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,CACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,qBAAsB,CAClB,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,CACH,EACD,UAAW,CACP,GACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,CACH,EACD,iBAAkB,CACd,IACA,IACA,GACH,EACD,WAAY,CACR,EACA,EACA,GACH,EACD,aAAc,CACV,IACA,GACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,IACA,GACH,EACD,kBAAmB,CACf,EACA,IACA,GACH,EACD,gBAAiB,CACb,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,GACA,GACH,EACD,aAAc,CACV,GACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,GACA,CACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,GACH,EACD,cAAe,CACX,IACA,GACA,GACH,EACD,IAAK,CACD,IACA,EACA,CACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,YAAa,CACT,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,EACH,EACD,SAAU,CACN,GACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,IAAK,CACD,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,qBC7uBL,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQ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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,42,43,44]}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/types.ts","../src/components/EBadge.vue?vue&type=script&lang.ts","../src/components/EAvatar.vue?vue&type=script&lang.ts","../node_modules/tailwindcss/lib/util/negateValue.js","../node_modules/tailwindcss/lib/corePluginList.js","../node_modules/tailwindcss/lib/util/configurePlugins.js","../node_modules/picocolors/picocolors.browser.js","../node_modules/tailwindcss/lib/util/log.js","../node_modules/tailwindcss/lib/public/colors.js","../node_modules/tailwindcss/lib/util/defaults.js","../node_modules/tailwindcss/lib/util/toPath.js","../node_modules/tailwindcss/lib/featureFlags.js","../node_modules/tailwindcss/lib/util/normalizeConfig.js","../node_modules/tailwindcss/lib/util/isPlainObject.js","../node_modules/tailwindcss/lib/util/cloneDeep.js","../node_modules/tailwindcss/lib/util/escapeCommas.js","../node_modules/tailwindcss/lib/util/colorNames.js","../node_modules/tailwindcss/lib/util/color.js","../node_modules/tailwindcss/lib/util/withAlphaVariable.js","../node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","../node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","../node_modules/tailwindcss/lib/util/dataTypes.js","../node_modules/tailwindcss/lib/util/validateFormalSyntax.js","../node_modules/tailwindcss/lib/util/pluginUtils.js","../node_modules/tailwindcss/lib/util/toColorValue.js","../node_modules/tailwindcss/lib/util/resolveConfig.js","../node_modules/tailwindcss/stubs/config.full.js","../node_modules/tailwindcss/lib/util/getAllConfigs.js","../node_modules/tailwindcss/lib/public/resolve-config.js","../node_modules/tailwindcss/resolveConfig.js","../node_modules/tailwindcss/colors.js","../config.ts","../src/constants.ts","../src/components/EIcon.vue?vue&type=script&lang.ts","../src/components/ESpinner.vue?vue&type=script&lang.ts","../src/components/ERow.vue?vue&type=script&lang.ts","../src/components/ECol.vue?vue&type=script&lang.ts","../src/utils.ts","../src/components/EVideoPlayer.vue?vue&type=script&lang.ts","../src/components/ETimeline.config.ts","../src/directives/resize-observer.ts","../src/directives/index.ts","../src/components/ETimeline.vue?vue&type=script&lang.ts","../src/index.ts"],"sourcesContent":["import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from \"@/constants\"\n\nexport enum Size {\n dot = \"dot\",\n xs = \"xs\",\n sm = \"sm\",\n md = \"base\",\n base = \"base\",\n lg = \"lg\",\n xl = \"xl\",\n \"2xl\" = \"2xl\",\n \"3xl\" = \"3xl\",\n \"4xl\" = \"4xl\",\n \"5xl\" = \"5xl\",\n \"6xl\" = \"6xl\",\n \"7xl\" = \"7xl\",\n \"8xl\" = \"8xl\",\n \"9xl\" = \"9xl\",\n}\n\nexport enum BaseColor {\n warning = \"warning\",\n error = \"error\",\n info = \"info\",\n success = \"success\",\n primary = \"primary\",\n brand = \"brand\",\n default = \"default\",\n}\n\nexport type TBadgeSize = (typeof BadgeSizes)[number]\n\nexport type TAvatarSize = (typeof AvatarSizes)[number]\n\nexport type TIconSize = (typeof IconSizes)[number]\n\nexport type TBadgeColor = (typeof BadgeColors)[number]\n\nexport type TailwindColorClass = string\n\nexport type FlexJustifyContent =\n | \"around\"\n | \"between\"\n | \"center\"\n | \"end\"\n | \"evenly\"\n | \"normal\"\n | \"start\"\n | \"stretch\"\n\nexport type FlexAlignItems = \"start\" | \"center\" | \"end\" | \"baseline\" | \"stretch\"\n\nexport type FlexAlignContent =\n | \"around\"\n | \"baseline\"\n | \"between\"\n | \"center\"\n | \"end\"\n | \"evenly\"\n | \"normal\"\n | \"start\"\n | \"stretch\"\n\nexport type FlexAlignSelf =\n | \"auto\"\n | \"baseline\"\n | \"center\"\n | \"end\"\n | \"start\"\n | \"stretch\"\n\nexport enum TimelineAxis {\n overview = \"overview\",\n detailed = \"detailed\",\n detailedBackground = \"detailedBackground\",\n}\n\nexport type TimelineTicksConfig = {\n precision: number\n interval: any\n format: string | ((d: Date) => string)\n}\n\nexport type TimelineAxesConfig = {\n [key in TimelineAxis]: TimelineTicksConfig[]\n}\n\nexport type Timestamp = Date | string | number\n\nexport default {}\n","\nimport Vue, { PropType } from \"vue\"\nimport { BaseColor, Size, TBadgeColor, TBadgeSize } from \"@/types\"\n\nexport default Vue.extend({\n name: \"EBadge\",\n props: {\n text: {\n type: String,\n default: \"\",\n },\n color: {\n type: String as PropType<TBadgeColor>,\n default: BaseColor.default,\n },\n size: {\n type: String as PropType<TBadgeSize>,\n default: Size.base,\n },\n },\n data() {\n return {\n colors: {\n [BaseColor.error]: \"e-bg-rose-500 e-text-white\",\n [BaseColor.info]: \"e-bg-cyan-500 e-text-white\",\n [BaseColor.warning]: \"e-bg-amber-500 e-text-white\",\n [BaseColor.primary]: \"e-bg-sky-500 e-text-white\",\n [BaseColor.default]: \"e-bg-slate-300 e-text-white\",\n [BaseColor.success]: \"e-bg-lime-500 e-text-white\",\n },\n sizes: {\n [Size.dot]: \"e-w-2 e-h-2\",\n [Size.xs]: \"e-w-3 e-h-3\",\n [Size.sm]: \"e-w-4 e-h-4\",\n [Size.md]: \"e-w-5 e-h-5\",\n [Size.lg]:\n \"e-min-w-[2rem] e-max-w-[4rem] e-px-1 e-h-6 e-text-sm e-font-medium\",\n [Size.xl]:\n \"e-min-w-[3rem] e-max-w-[5rem] e-px-1 e-h-8 e-text-base e-font-medium\",\n },\n }\n },\n computed: {\n badgeClasses(): string[] {\n const colorClasses =\n this.colors[this.color] || this.colors[BaseColor.default]\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.md]\n\n return [\n \"e-flex e-items-center e-justify-center e-rounded-full\",\n colorClasses,\n sizeClasses,\n ]\n },\n showText(): boolean {\n return [Size.lg, Size.xl].includes(this.size)\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport Badge from \"@/components/EBadge.vue\"\nimport { BaseColor, Size, TAvatarSize, TBadgeColor, TBadgeSize } from \"@/types\"\n\nexport default Vue.extend({\n name: \"EAvatar\",\n components: {\n Badge,\n },\n props: {\n size: {\n type: String as PropType<TAvatarSize>,\n default: Size.md,\n },\n showBadge: {\n type: Boolean,\n default: false,\n },\n badgeColor: {\n type: String as PropType<TBadgeColor>,\n default: BaseColor.error,\n },\n badgeText: {\n type: String,\n default: \"\",\n },\n badgeSize: {\n type: String as PropType<TBadgeSize>,\n default: Size.md,\n },\n image: {\n type: String,\n default: \"\",\n },\n },\n data() {\n return {\n sizes: {\n [Size.xs]: \"e-w-8 e-h-8 e-text-xs\",\n [Size.sm]: \"e-w-10 e-h-10 e-text-sm\",\n [Size.md]: \"e-w-14 e-h-14 e-text-base\",\n [Size.lg]: \"e-w-20 e-h-20 e-text-2xl\",\n [Size.xl]: \"e-w-28 e-h-28 e-text-3xl\",\n [Size[\"2xl\"]]: \"e-w-36 e-h-36 e-text-5xl\",\n },\n }\n },\n computed: {\n avatarClasses(): string[] {\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.xs]\n\n return [\n \"e-flex e-items-center e-justify-center e-rounded-full e-bg-purple-500 e-text-white e-font-medium\",\n sizeClasses,\n ]\n },\n },\n})\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return negateValue;\n }\n});\nfunction negateValue(value) {\n value = `${value}`;\n if (value === \"0\") {\n return \"0\";\n }\n // Flip sign of numbers\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value)) {\n return value.replace(/^[+-]?/, (sign)=>sign === \"-\" ? \"\" : \"-\");\n }\n // What functions we support negating numeric values for\n // var() isn't inherently a numeric function but we support it anyway\n // The trigonometric functions are omitted because you'll need to use calc(…) with them _anyway_\n // to produce generally useful results and that will be covered already\n let numericFunctions = [\n \"var\",\n \"calc\",\n \"min\",\n \"max\",\n \"clamp\"\n ];\n for (const fn of numericFunctions){\n if (value.includes(`${fn}(`)) {\n return `calc(${value} * -1)`;\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"lineClamp\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"captionSide\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"listStyleImage\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"hyphens\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction _default(pluginConfig, plugins) {\n if (pluginConfig === undefined) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(plugins.filter((pluginName)=>{\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(Object.keys(pluginConfig).filter((pluginName)=>{\n return pluginConfig[pluginName] !== false;\n })))\n ];\n return pluginNames;\n}\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dim: function() {\n return dim;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (typeof process !== \"undefined\" && process.env.JEST_WORKER_ID) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message));\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nconst _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"../util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: function() {\n return defaults;\n }\n});\nfunction defaults(target, ...sources) {\n for (let source of sources){\n for(let k in source){\n var _target_hasOwnProperty;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty = target.hasOwnProperty) === null || _target_hasOwnProperty === void 0 ? void 0 : _target_hasOwnProperty.call(target, k))) {\n target[k] = source[k];\n }\n }\n for (let k of Object.getOwnPropertySymbols(source)){\n var _target_hasOwnProperty1;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty1 = target.hasOwnProperty) === null || _target_hasOwnProperty1 === void 0 ? void 0 : _target_hasOwnProperty1.call(target, k))) {\n target[k] = source[k];\n }\n }\n }\n return target;\n}\n","/**\n * Parse a path string into an array of path segments.\n *\n * Square bracket notation `a[b]` may be used to \"escape\" dots that would otherwise be interpreted as path separators.\n *\n * Example:\n * a -> ['a']\n * a.b.c -> ['a', 'b', 'c']\n * a[b].c -> ['a', 'b', 'c']\n * a[b.c].e.f -> ['a', 'b.c', 'e', 'f']\n * a[b][c][d] -> ['a', 'b', 'c', 'd']\n *\n * @param {string|string[]} path\n **/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toPath\", {\n enumerable: true,\n get: function() {\n return toPath;\n }\n});\nfunction toPath(path) {\n if (Array.isArray(path)) return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n flagEnabled: function() {\n return flagEnabled;\n },\n issueFlagNotices: function() {\n return issueFlagNotices;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"./util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet defaults = {\n optimizeUniversalDefaults: false,\n generalizedModifiers: true,\n get disableColorOpacityUtilitiesByDefault () {\n return false;\n },\n get relativeContentPathsByDefault () {\n return false;\n }\n};\nlet featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\",\n \"disableColorOpacityUtilitiesByDefault\",\n \"relativeContentPathsByDefault\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"generalizedModifiers\"\n ]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n var _config_future;\n var _config_future_flag, _ref;\n return config.future === \"all\" || ((_ref = (_config_future_flag = config === null || config === void 0 ? void 0 : (_config_future = config.future) === null || _config_future === void 0 ? void 0 : _config_future[flag]) !== null && _config_future_flag !== void 0 ? _config_future_flag : defaults[flag]) !== null && _ref !== void 0 ? _ref : false);\n }\n if (featureFlags.experimental.includes(flag)) {\n var _config_experimental;\n var _config_experimental_flag, _ref1;\n return config.experimental === \"all\" || ((_ref1 = (_config_experimental_flag = config === null || config === void 0 ? void 0 : (_config_experimental = config.experimental) === null || _config_experimental === void 0 ? void 0 : _config_experimental[flag]) !== null && _config_experimental_flag !== void 0 ? _config_experimental_flag : defaults[flag]) !== null && _ref1 !== void 0 ? _ref1 : false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n var _config_experimental;\n return Object.keys((_config_experimental = config === null || config === void 0 ? void 0 : config.experimental) !== null && _config_experimental !== void 0 ? _config_experimental : {}).filter((flag)=>featureFlags.experimental.includes(flag) && config.experimental[flag]);\n}\nfunction issueFlagNotices(config) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s)=>_picocolors.default.yellow(s)).join(\", \");\n _log.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\"\n ]);\n }\n}\nconst _default = featureFlags;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeConfig\", {\n enumerable: true,\n get: function() {\n return normalizeConfig;\n }\n});\nconst _featureFlags = require(\"../featureFlags\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(require(\"./log\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction normalizeConfig(config) {\n // Quick structure validation\n /**\n * type FilePath = string\n * type RawFile = { raw: string, extension?: string }\n * type ExtractorFn = (content: string) => Array<string>\n * type TransformerFn = (content: string) => string\n *\n * type Content =\n * | Array<FilePath | RawFile>\n * | {\n * files: Array<FilePath | RawFile>,\n * extract?: ExtractorFn | { [extension: string]: ExtractorFn }\n * transform?: TransformerFn | { [extension: string]: TransformerFn }\n * }\n */ let valid = (()=>{\n // `config.purge` should not exist anymore\n if (config.purge) {\n return false;\n }\n // `config.content` should exist\n if (!config.content) {\n return false;\n }\n // `config.content` should be an object or an array\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n // When `config.content` is an array, it should consist of FilePaths or RawFiles\n if (Array.isArray(config.content)) {\n return config.content.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n });\n }\n // When `config.content` is an object\n if (typeof config.content === \"object\" && config.content !== null) {\n // Only `files`, `relative`, `extract`, and `transform` can exist in `config.content`\n if (Object.keys(config.content).some((key)=>![\n \"files\",\n \"relative\",\n \"extract\",\n \"transform\"\n ].includes(key))) {\n return false;\n }\n // `config.content.files` should exist of FilePaths or RawFiles\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n // `config.content.extract` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.extract === \"object\") {\n for (let value of Object.values(config.content.extract)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === undefined || typeof config.content.extract === \"function\")) {\n return false;\n }\n // `config.content.transform` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.transform === \"object\") {\n for (let value of Object.values(config.content.transform)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === undefined || typeof config.content.transform === \"function\")) {\n return false;\n }\n // `config.content.relative` is optional and can be a boolean\n if (typeof config.content.relative !== \"boolean\" && typeof config.content.relative !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n _log.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\"\n ]);\n }\n // Normalize the `safelist`\n config.safelist = (()=>{\n var _purge_options;\n let { content , purge , safelist } = config;\n if (Array.isArray(safelist)) return safelist;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : (_purge_options = purge.options) === null || _purge_options === void 0 ? void 0 : _purge_options.safelist)) return purge.options.safelist;\n return [];\n })();\n // Normalize the `blocklist`\n config.blocklist = (()=>{\n let { blocklist } = config;\n if (Array.isArray(blocklist)) {\n if (blocklist.every((item)=>typeof item === \"string\")) {\n return blocklist;\n }\n _log.default.warn(\"blocklist-invalid\", [\n \"The `blocklist` option must be an array of strings.\",\n \"https://tailwindcss.com/docs/content-configuration#discarding-classes\"\n ]);\n }\n return [];\n })();\n // Normalize prefix option\n if (typeof config.prefix === \"function\") {\n _log.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\"\n ]);\n config.prefix = \"\";\n } else {\n var _config_prefix;\n config.prefix = (_config_prefix = config.prefix) !== null && _config_prefix !== void 0 ? _config_prefix : \"\";\n }\n // Normalize the `content`\n config.content = {\n relative: (()=>{\n let { content } = config;\n if (content === null || content === void 0 ? void 0 : content.relative) {\n return content.relative;\n }\n return (0, _featureFlags.flagEnabled)(config, \"relativeContentPathsByDefault\");\n })(),\n files: (()=>{\n let { content , purge } = config;\n if (Array.isArray(purge)) return purge;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.content)) return purge.content;\n if (Array.isArray(content)) return content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.content)) return content.content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.files)) return content.files;\n return [];\n })(),\n extract: (()=>{\n let extract = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_extract, _config_content1, _config_content_extract, _config_purge2, _config_purge_options, _config_content2, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.extract) return config.purge.extract;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.extract) return config.content.extract;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_extract = _config_purge1.extract) === null || _config_purge_extract === void 0 ? void 0 : _config_purge_extract.DEFAULT) return config.purge.extract.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_extract = _config_content1.extract) === null || _config_content_extract === void 0 ? void 0 : _config_content_extract.DEFAULT) return config.content.extract.DEFAULT;\n if ((_config_purge2 = config.purge) === null || _config_purge2 === void 0 ? void 0 : (_config_purge_options = _config_purge2.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.extractors) return config.purge.options.extractors;\n if ((_config_content2 = config.content) === null || _config_content2 === void 0 ? void 0 : (_config_content_options = _config_content2.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.extractors) return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor = (()=>{\n var _config_purge, _config_purge_options, _config_content, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : (_config_purge_options = _config_purge.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : (_config_content_options = _config_content.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return undefined;\n })();\n if (defaultExtractor !== undefined) {\n extractors.DEFAULT = defaultExtractor;\n }\n // Functions\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){\n for (let extension of extensions){\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (()=>{\n let transform = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_transform, _config_content1, _config_content_transform;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.transform) return config.purge.transform;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.transform) return config.content.transform;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_transform = _config_purge1.transform) === null || _config_purge_transform === void 0 ? void 0 : _config_purge_transform.DEFAULT) return config.purge.transform.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_transform = _config_content1.transform) === null || _config_content_transform === void 0 ? void 0 : _config_content_transform.DEFAULT) return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n // Validate globs to prevent bogus globs.\n // E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`\n for (let file of config.content.files){\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n _log.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return isPlainObject;\n }\n});\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: function() {\n return cloneDeep;\n }\n});\nfunction cloneDeep(value) {\n if (Array.isArray(value)) {\n return value.map((child)=>cloneDeep(child));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(Object.entries(value).map(([k, v])=>[\n k,\n cloneDeep(v)\n ]));\n }\n return value;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return escapeCommas;\n }\n});\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = {\n aliceblue: [\n 240,\n 248,\n 255\n ],\n antiquewhite: [\n 250,\n 235,\n 215\n ],\n aqua: [\n 0,\n 255,\n 255\n ],\n aquamarine: [\n 127,\n 255,\n 212\n ],\n azure: [\n 240,\n 255,\n 255\n ],\n beige: [\n 245,\n 245,\n 220\n ],\n bisque: [\n 255,\n 228,\n 196\n ],\n black: [\n 0,\n 0,\n 0\n ],\n blanchedalmond: [\n 255,\n 235,\n 205\n ],\n blue: [\n 0,\n 0,\n 255\n ],\n blueviolet: [\n 138,\n 43,\n 226\n ],\n brown: [\n 165,\n 42,\n 42\n ],\n burlywood: [\n 222,\n 184,\n 135\n ],\n cadetblue: [\n 95,\n 158,\n 160\n ],\n chartreuse: [\n 127,\n 255,\n 0\n ],\n chocolate: [\n 210,\n 105,\n 30\n ],\n coral: [\n 255,\n 127,\n 80\n ],\n cornflowerblue: [\n 100,\n 149,\n 237\n ],\n cornsilk: [\n 255,\n 248,\n 220\n ],\n crimson: [\n 220,\n 20,\n 60\n ],\n cyan: [\n 0,\n 255,\n 255\n ],\n darkblue: [\n 0,\n 0,\n 139\n ],\n darkcyan: [\n 0,\n 139,\n 139\n ],\n darkgoldenrod: [\n 184,\n 134,\n 11\n ],\n darkgray: [\n 169,\n 169,\n 169\n ],\n darkgreen: [\n 0,\n 100,\n 0\n ],\n darkgrey: [\n 169,\n 169,\n 169\n ],\n darkkhaki: [\n 189,\n 183,\n 107\n ],\n darkmagenta: [\n 139,\n 0,\n 139\n ],\n darkolivegreen: [\n 85,\n 107,\n 47\n ],\n darkorange: [\n 255,\n 140,\n 0\n ],\n darkorchid: [\n 153,\n 50,\n 204\n ],\n darkred: [\n 139,\n 0,\n 0\n ],\n darksalmon: [\n 233,\n 150,\n 122\n ],\n darkseagreen: [\n 143,\n 188,\n 143\n ],\n darkslateblue: [\n 72,\n 61,\n 139\n ],\n darkslategray: [\n 47,\n 79,\n 79\n ],\n darkslategrey: [\n 47,\n 79,\n 79\n ],\n darkturquoise: [\n 0,\n 206,\n 209\n ],\n darkviolet: [\n 148,\n 0,\n 211\n ],\n deeppink: [\n 255,\n 20,\n 147\n ],\n deepskyblue: [\n 0,\n 191,\n 255\n ],\n dimgray: [\n 105,\n 105,\n 105\n ],\n dimgrey: [\n 105,\n 105,\n 105\n ],\n dodgerblue: [\n 30,\n 144,\n 255\n ],\n firebrick: [\n 178,\n 34,\n 34\n ],\n floralwhite: [\n 255,\n 250,\n 240\n ],\n forestgreen: [\n 34,\n 139,\n 34\n ],\n fuchsia: [\n 255,\n 0,\n 255\n ],\n gainsboro: [\n 220,\n 220,\n 220\n ],\n ghostwhite: [\n 248,\n 248,\n 255\n ],\n gold: [\n 255,\n 215,\n 0\n ],\n goldenrod: [\n 218,\n 165,\n 32\n ],\n gray: [\n 128,\n 128,\n 128\n ],\n green: [\n 0,\n 128,\n 0\n ],\n greenyellow: [\n 173,\n 255,\n 47\n ],\n grey: [\n 128,\n 128,\n 128\n ],\n honeydew: [\n 240,\n 255,\n 240\n ],\n hotpink: [\n 255,\n 105,\n 180\n ],\n indianred: [\n 205,\n 92,\n 92\n ],\n indigo: [\n 75,\n 0,\n 130\n ],\n ivory: [\n 255,\n 255,\n 240\n ],\n khaki: [\n 240,\n 230,\n 140\n ],\n lavender: [\n 230,\n 230,\n 250\n ],\n lavenderblush: [\n 255,\n 240,\n 245\n ],\n lawngreen: [\n 124,\n 252,\n 0\n ],\n lemonchiffon: [\n 255,\n 250,\n 205\n ],\n lightblue: [\n 173,\n 216,\n 230\n ],\n lightcoral: [\n 240,\n 128,\n 128\n ],\n lightcyan: [\n 224,\n 255,\n 255\n ],\n lightgoldenrodyellow: [\n 250,\n 250,\n 210\n ],\n lightgray: [\n 211,\n 211,\n 211\n ],\n lightgreen: [\n 144,\n 238,\n 144\n ],\n lightgrey: [\n 211,\n 211,\n 211\n ],\n lightpink: [\n 255,\n 182,\n 193\n ],\n lightsalmon: [\n 255,\n 160,\n 122\n ],\n lightseagreen: [\n 32,\n 178,\n 170\n ],\n lightskyblue: [\n 135,\n 206,\n 250\n ],\n lightslategray: [\n 119,\n 136,\n 153\n ],\n lightslategrey: [\n 119,\n 136,\n 153\n ],\n lightsteelblue: [\n 176,\n 196,\n 222\n ],\n lightyellow: [\n 255,\n 255,\n 224\n ],\n lime: [\n 0,\n 255,\n 0\n ],\n limegreen: [\n 50,\n 205,\n 50\n ],\n linen: [\n 250,\n 240,\n 230\n ],\n magenta: [\n 255,\n 0,\n 255\n ],\n maroon: [\n 128,\n 0,\n 0\n ],\n mediumaquamarine: [\n 102,\n 205,\n 170\n ],\n mediumblue: [\n 0,\n 0,\n 205\n ],\n mediumorchid: [\n 186,\n 85,\n 211\n ],\n mediumpurple: [\n 147,\n 112,\n 219\n ],\n mediumseagreen: [\n 60,\n 179,\n 113\n ],\n mediumslateblue: [\n 123,\n 104,\n 238\n ],\n mediumspringgreen: [\n 0,\n 250,\n 154\n ],\n mediumturquoise: [\n 72,\n 209,\n 204\n ],\n mediumvioletred: [\n 199,\n 21,\n 133\n ],\n midnightblue: [\n 25,\n 25,\n 112\n ],\n mintcream: [\n 245,\n 255,\n 250\n ],\n mistyrose: [\n 255,\n 228,\n 225\n ],\n moccasin: [\n 255,\n 228,\n 181\n ],\n navajowhite: [\n 255,\n 222,\n 173\n ],\n navy: [\n 0,\n 0,\n 128\n ],\n oldlace: [\n 253,\n 245,\n 230\n ],\n olive: [\n 128,\n 128,\n 0\n ],\n olivedrab: [\n 107,\n 142,\n 35\n ],\n orange: [\n 255,\n 165,\n 0\n ],\n orangered: [\n 255,\n 69,\n 0\n ],\n orchid: [\n 218,\n 112,\n 214\n ],\n palegoldenrod: [\n 238,\n 232,\n 170\n ],\n palegreen: [\n 152,\n 251,\n 152\n ],\n paleturquoise: [\n 175,\n 238,\n 238\n ],\n palevioletred: [\n 219,\n 112,\n 147\n ],\n papayawhip: [\n 255,\n 239,\n 213\n ],\n peachpuff: [\n 255,\n 218,\n 185\n ],\n peru: [\n 205,\n 133,\n 63\n ],\n pink: [\n 255,\n 192,\n 203\n ],\n plum: [\n 221,\n 160,\n 221\n ],\n powderblue: [\n 176,\n 224,\n 230\n ],\n purple: [\n 128,\n 0,\n 128\n ],\n rebeccapurple: [\n 102,\n 51,\n 153\n ],\n red: [\n 255,\n 0,\n 0\n ],\n rosybrown: [\n 188,\n 143,\n 143\n ],\n royalblue: [\n 65,\n 105,\n 225\n ],\n saddlebrown: [\n 139,\n 69,\n 19\n ],\n salmon: [\n 250,\n 128,\n 114\n ],\n sandybrown: [\n 244,\n 164,\n 96\n ],\n seagreen: [\n 46,\n 139,\n 87\n ],\n seashell: [\n 255,\n 245,\n 238\n ],\n sienna: [\n 160,\n 82,\n 45\n ],\n silver: [\n 192,\n 192,\n 192\n ],\n skyblue: [\n 135,\n 206,\n 235\n ],\n slateblue: [\n 106,\n 90,\n 205\n ],\n slategray: [\n 112,\n 128,\n 144\n ],\n slategrey: [\n 112,\n 128,\n 144\n ],\n snow: [\n 255,\n 250,\n 250\n ],\n springgreen: [\n 0,\n 255,\n 127\n ],\n steelblue: [\n 70,\n 130,\n 180\n ],\n tan: [\n 210,\n 180,\n 140\n ],\n teal: [\n 0,\n 128,\n 128\n ],\n thistle: [\n 216,\n 191,\n 216\n ],\n tomato: [\n 255,\n 99,\n 71\n ],\n turquoise: [\n 64,\n 224,\n 208\n ],\n violet: [\n 238,\n 130,\n 238\n ],\n wheat: [\n 245,\n 222,\n 179\n ],\n white: [\n 255,\n 255,\n 255\n ],\n whitesmoke: [\n 245,\n 245,\n 245\n ],\n yellow: [\n 255,\n 255,\n 0\n ],\n yellowgreen: [\n 154,\n 205,\n 50\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseColor: function() {\n return parseColor;\n },\n formatColor: function() {\n return formatColor;\n }\n});\nconst _colorNames = /*#__PURE__*/ _interop_require_default(require(\"./colorNames\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nlet SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nlet VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nlet SEP = /(?:\\s*,\\s*|\\s+)/;\nlet ALPHA_SEP = /\\s*[,/]\\s*/;\nlet CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)\\)/;\nlet RGB = new RegExp(`^(rgba?)\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nlet HSL = new RegExp(`^(hsla?)\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nfunction parseColor(value, { loose =false } = {}) {\n var _match_, _match__toString;\n if (typeof value !== \"string\") {\n return null;\n }\n value = value.trim();\n if (value === \"transparent\") {\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n }\n if (value in _colorNames.default) {\n return {\n mode: \"rgb\",\n color: _colorNames.default[value].map((v)=>v.toString())\n };\n }\n let hex = value.replace(SHORT_HEX, (_, r, g, b, a)=>[\n \"#\",\n r,\n r,\n g,\n g,\n b,\n b,\n a ? a + a : \"\"\n ].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [\n parseInt(hex[1], 16),\n parseInt(hex[2], 16),\n parseInt(hex[3], 16)\n ].map((v)=>v.toString()),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : undefined\n };\n }\n var _value_match;\n let match = (_value_match = value.match(RGB)) !== null && _value_match !== void 0 ? _value_match : value.match(HSL);\n if (match === null) {\n return null;\n }\n let color = [\n match[2],\n match[3],\n match[4]\n ].filter(Boolean).map((v)=>v.toString());\n // rgba(var(--my-color), 0.1)\n // hsla(var(--my-color), 0.1)\n if (color.length === 2 && color[0].startsWith(\"var(\")) {\n return {\n mode: match[1],\n color: [\n color[0]\n ],\n alpha: color[1]\n };\n }\n if (!loose && color.length !== 3) {\n return null;\n }\n if (color.length < 3 && !color.some((part)=>/^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color,\n alpha: (_match_ = match[5]) === null || _match_ === void 0 ? void 0 : (_match__toString = _match_.toString) === null || _match__toString === void 0 ? void 0 : _match__toString.call(_match_)\n };\n}\nfunction formatColor({ mode , color , alpha }) {\n let hasAlpha = alpha !== undefined;\n if (mode === \"rgba\" || mode === \"hsla\") {\n return `${mode}(${color.join(\", \")}${hasAlpha ? `, ${alpha}` : \"\"})`;\n }\n return `${mode}(${color.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withAlphaValue: function() {\n return withAlphaValue;\n },\n default: function() {\n return withAlphaVariable;\n }\n});\nconst _color = require(\"./color\");\nfunction withAlphaValue(color, alphaValue, defaultValue) {\n if (typeof color === \"function\") {\n return color({\n opacityValue: alphaValue\n });\n }\n let parsed = (0, _color.parseColor)(color, {\n loose: true\n });\n if (parsed === null) {\n return defaultValue;\n }\n return (0, _color.formatColor)({\n ...parsed,\n alpha: alphaValue\n });\n}\nfunction withAlphaVariable({ color , property , variable }) {\n let properties = [].concat(property);\n if (typeof color === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`\n })\n ];\n }))\n };\n }\n const parsed = (0, _color.parseColor)(color);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n if (parsed.alpha !== undefined) {\n // Has an alpha value, return color as-is\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n (0, _color.formatColor)({\n ...parsed,\n alpha: `var(${variable})`\n })\n ];\n }))\n };\n}\n","/**\n * This splits a string on a top-level character.\n *\n * Regex doesn't support recursion (at least not the JS-flavored version).\n * So we have to use a tiny state machine to keep track of paren placement.\n *\n * Expected behavior using commas:\n * var(--a, 0 0 1px rgb(0, 0, 0)), 0 0 1px rgb(0, 0, 0)\n * ─┬─ ┬ ┬ ┬\n * x x x ╰──────── Split because top-level\n * ╰──────────────┴──┴───────────── Ignored b/c inside >= 1 levels of parens\n *\n * @param {string} input\n * @param {string} separator\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"splitAtTopLevelOnly\", {\n enumerable: true,\n get: function() {\n return splitAtTopLevelOnly;\n }\n});\nfunction splitAtTopLevelOnly(input, separator) {\n let stack = [];\n let parts = [];\n let lastPos = 0;\n let isEscaped = false;\n for(let idx = 0; idx < input.length; idx++){\n let char = input[idx];\n if (stack.length === 0 && char === separator[0] && !isEscaped) {\n if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {\n parts.push(input.slice(lastPos, idx));\n lastPos = idx + separator.length;\n }\n }\n if (isEscaped) {\n isEscaped = false;\n } else if (char === \"\\\\\") {\n isEscaped = true;\n }\n if (char === \"(\" || char === \"[\" || char === \"{\") {\n stack.push(char);\n } else if (char === \")\" && stack[stack.length - 1] === \"(\" || char === \"]\" && stack[stack.length - 1] === \"[\" || char === \"}\" && stack[stack.length - 1] === \"{\") {\n stack.pop();\n }\n }\n parts.push(input.slice(lastPos));\n return parts;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseBoxShadowValue: function() {\n return parseBoxShadowValue;\n },\n formatBoxShadowValue: function() {\n return formatBoxShadowValue;\n }\n});\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet KEYWORDS = new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nlet SPACE = /\\ +(?![^(]*\\))/g // Similar to the one above, but with spaces instead.\n;\nlet LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(input, \",\");\n return shadows.map((shadow)=>{\n let value = shadow.trim();\n let result = {\n raw: value\n };\n let parts = value.split(SPACE);\n let seen = new Set();\n for (let part of parts){\n // Reset index, since the regex is stateful.\n LENGTH.lastIndex = 0;\n // Keyword\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown) result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n // Check if valid\n result.valid = result.x !== undefined && result.y !== undefined;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow)=>{\n if (!shadow.valid) {\n return shadow.raw;\n }\n return [\n shadow.keyword,\n shadow.x,\n shadow.y,\n shadow.blur,\n shadow.spread,\n shadow.color\n ].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalize: function() {\n return normalize;\n },\n url: function() {\n return url;\n },\n number: function() {\n return number;\n },\n percentage: function() {\n return percentage;\n },\n length: function() {\n return length;\n },\n lineWidth: function() {\n return lineWidth;\n },\n shadow: function() {\n return shadow;\n },\n color: function() {\n return color;\n },\n image: function() {\n return image;\n },\n gradient: function() {\n return gradient;\n },\n position: function() {\n return position;\n },\n familyName: function() {\n return familyName;\n },\n genericName: function() {\n return genericName;\n },\n absoluteSize: function() {\n return absoluteSize;\n },\n relativeSize: function() {\n return relativeSize;\n }\n});\nconst _color = require(\"./color\");\nconst _parseBoxShadowValue = require(\"./parseBoxShadowValue\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet cssFunctions = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n];\n// Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types\nfunction isCSSFunction(value) {\n return cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.*\\\\)`).test(value));\n}\nconst placeholder = \"--tw-placeholder\";\nconst placeholderRe = new RegExp(placeholder, \"g\");\nfunction normalize(value, isRoot = true) {\n if (value.startsWith(\"--\")) {\n return `var(${value})`;\n }\n // Keep raw strings if it starts with `url(`\n if (value.includes(\"url(\")) {\n return value.split(/(url\\(.*?\\))/g).filter(Boolean).map((part)=>{\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, false);\n }).join(\"\");\n }\n // Convert `_` to ` `, except for escaped underscores `\\_`\n value = value.replace(/([^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + \" \".repeat(fullMatch.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n // Remove leftover whitespace\n if (isRoot) {\n value = value.trim();\n }\n value = normalizeMathOperatorSpacing(value);\n return value;\n}\n/**\n * Add spaces around operators inside math functions\n * like calc() that do not follow an operator or '('.\n *\n * @param {string} value\n * @returns {string}\n */ function normalizeMathOperatorSpacing(value) {\n return value.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>{\n let vars = [];\n return match.replace(/var\\((--.+?)[,)]/g, (match, g1)=>{\n vars.push(g1);\n return match.replace(g1, placeholder);\n }).replace(/(-?\\d*\\.?\\d(?!\\b-\\d.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \").replace(placeholderRe, ()=>vars.shift());\n });\n}\nfunction url(value) {\n return value.startsWith(\"url(\");\n}\nfunction number(value) {\n return !isNaN(Number(value)) || isCSSFunction(value);\n}\nfunction percentage(value) {\n return value.endsWith(\"%\") && number(value.slice(0, -1)) || isCSSFunction(value);\n}\n// Please refer to MDN when updating this list:\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units\n// https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries#container_query_length_units\nlet lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n \"cqw\",\n \"cqh\",\n \"cqi\",\n \"cqb\",\n \"cqmin\",\n \"cqmax\"\n];\nlet lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value) {\n return value === \"0\" || new RegExp(`^[+-]?[0-9]*\\.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`).test(value) || isCSSFunction(value);\n}\nlet lineWidths = new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nfunction lineWidth(value) {\n return lineWidths.has(value);\n}\nfunction shadow(value) {\n let parsedShadows = (0, _parseBoxShadowValue.parseBoxShadowValue)(normalize(value));\n for (let parsedShadow of parsedShadows){\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value) {\n let colors = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if ((0, _color.parseColor)(part, {\n loose: true\n }) !== null) return colors++, true;\n return false;\n });\n if (!result) return false;\n return colors > 0;\n}\nfunction image(value) {\n let images = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (url(part) || gradient(part) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((fn)=>part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return images > 0;\n}\nlet gradientTypes = new Set([\n \"conic-gradient\",\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-conic-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\"\n]);\nfunction gradient(value) {\n value = normalize(value);\n for (let type of gradientTypes){\n if (value.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nlet validPositions = new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n]);\nfunction position(value) {\n let positions = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return positions > 0;\n}\nfunction familyName(value) {\n let fonts = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n // If it contains spaces, then it should be quoted\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n // If it starts with a number, it's invalid\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result) return false;\n return fonts > 0;\n}\nlet genericNames = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\"\n]);\nfunction genericName(value) {\n return genericNames.has(value);\n}\nlet absoluteSizes = new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\"\n]);\nfunction absoluteSize(value) {\n return absoluteSizes.has(value);\n}\nlet relativeSizes = new Set([\n \"larger\",\n \"smaller\"\n]);\nfunction relativeSize(value) {\n return relativeSizes.has(value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"backgroundSize\", {\n enumerable: true,\n get: function() {\n return backgroundSize;\n }\n});\nconst _dataTypes = require(\"./dataTypes\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nfunction backgroundSize(value) {\n let keywordValues = [\n \"cover\",\n \"contain\"\n ];\n // the <length-percentage> type will probably be a css function\n // so we have to use `splitAtTopLevelOnly`\n return (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n let sizes = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(part, \"_\").filter(Boolean);\n if (sizes.length === 1 && keywordValues.includes(sizes[0])) return true;\n if (sizes.length !== 1 && sizes.length !== 2) return false;\n return sizes.every((size)=>(0, _dataTypes.length)(size) || (0, _dataTypes.percentage)(size) || size === \"auto\");\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n updateAllClasses: function() {\n return updateAllClasses;\n },\n asValue: function() {\n return asValue;\n },\n parseColorFormat: function() {\n return parseColorFormat;\n },\n asColor: function() {\n return asColor;\n },\n asLookupValue: function() {\n return asLookupValue;\n },\n typeMap: function() {\n return typeMap;\n },\n coerceValue: function() {\n return coerceValue;\n },\n getMatchingTypes: function() {\n return getMatchingTypes;\n }\n});\nconst _escapeCommas = /*#__PURE__*/ _interop_require_default(require(\"./escapeCommas\"));\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _dataTypes = require(\"./dataTypes\");\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _validateFormalSyntax = require(\"./validateFormalSyntax\");\nconst _featureFlags = require(\"../featureFlags.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction updateAllClasses(selectors, updateClass) {\n selectors.walkClasses((sel)=>{\n sel.value = updateClass(sel.value);\n if (sel.raws && sel.raws.value) {\n sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);\n }\n });\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return undefined;\n }\n let value = modifier.slice(1, -1);\n if (!validate(value)) {\n return undefined;\n }\n return (0, _dataTypes.normalize)(value);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== undefined) {\n return (0, _negateValue.default)(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === undefined) {\n return undefined;\n }\n return (0, _negateValue.default)(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate =()=>true } = {}) {\n var _options_values;\n let value = (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n if (value !== undefined) {\n return value;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitUtilityModifier(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [\n modifier,\n undefined\n ];\n }\n let arbitrary = isArbitraryValue(modifier);\n // The modifier could be of the form `[foo]/[bar]`\n // We want to handle this case properly\n // without affecting `[foo/bar]`\n if (arbitrary && !modifier.includes(\"]/[\")) {\n return [\n modifier,\n undefined\n ];\n }\n return [\n modifier.slice(0, slashIdx),\n modifier.slice(slashIdx + 1)\n ];\n}\nfunction parseColorFormat(value) {\n if (typeof value === \"string\" && value.includes(\"<alpha-value>\")) {\n let oldValue = value;\n return ({ opacityValue =1 })=>oldValue.replace(\"<alpha-value>\", opacityValue);\n }\n return value;\n}\nfunction unwrapArbitraryModifier(modifier) {\n return (0, _dataTypes.normalize)(modifier.slice(1, -1));\n}\nfunction asColor(modifier, options = {}, { tailwindConfig ={} } = {}) {\n var _options_values;\n if (((_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier]) !== undefined) {\n var _options_values1;\n return parseColorFormat((_options_values1 = options.values) === null || _options_values1 === void 0 ? void 0 : _options_values1[modifier]);\n }\n // TODO: Hoist this up to getMatchingTypes or something\n // We do this here because we need the alpha value (if any)\n let [color, alpha] = splitUtilityModifier(modifier);\n if (alpha !== undefined) {\n var _options_values2, _tailwindConfig_theme, _tailwindConfig_theme_opacity;\n var _options_values_color;\n let normalizedColor = (_options_values_color = (_options_values2 = options.values) === null || _options_values2 === void 0 ? void 0 : _options_values2[color]) !== null && _options_values_color !== void 0 ? _options_values_color : isArbitraryValue(color) ? color.slice(1, -1) : undefined;\n if (normalizedColor === undefined) {\n return undefined;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, unwrapArbitraryModifier(alpha));\n }\n if (((_tailwindConfig_theme = tailwindConfig.theme) === null || _tailwindConfig_theme === void 0 ? void 0 : (_tailwindConfig_theme_opacity = _tailwindConfig_theme.opacity) === null || _tailwindConfig_theme_opacity === void 0 ? void 0 : _tailwindConfig_theme_opacity[alpha]) === undefined) {\n return undefined;\n }\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, {\n validate: _dataTypes.color\n });\n}\nfunction asLookupValue(modifier, options = {}) {\n var _options_values;\n return (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n}\nfunction guess(validate) {\n return (modifier, options)=>{\n return asValue(modifier, options, {\n validate\n });\n };\n}\nlet typeMap = {\n any: asValue,\n color: asColor,\n url: guess(_dataTypes.url),\n image: guess(_dataTypes.image),\n length: guess(_dataTypes.length),\n percentage: guess(_dataTypes.percentage),\n position: guess(_dataTypes.position),\n lookup: asLookupValue,\n \"generic-name\": guess(_dataTypes.genericName),\n \"family-name\": guess(_dataTypes.familyName),\n number: guess(_dataTypes.number),\n \"line-width\": guess(_dataTypes.lineWidth),\n \"absolute-size\": guess(_dataTypes.absoluteSize),\n \"relative-size\": guess(_dataTypes.relativeSize),\n shadow: guess(_dataTypes.shadow),\n size: guess(_validateFormalSyntax.backgroundSize)\n};\nlet supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1) return [\n undefined,\n input\n ];\n return [\n input.slice(0, idx),\n input.slice(idx + 1)\n ];\n}\nfunction coerceValue(types, modifier, options, tailwindConfig) {\n if (options.values && modifier in options.values) {\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n return [\n result,\n type,\n null\n ];\n }\n }\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value] = splitAtFirst(arbitraryValue, \":\");\n // It could be that this resolves to `url(https` which is not a valid\n // identifier. We currently only support \"simple\" words with dashes or\n // underscores. E.g.: family-name\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value = arbitraryValue;\n } else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value.length > 0 && supportedTypes.includes(explicitType)) {\n return [\n asValue(`[${value}]`, options),\n explicitType,\n null\n ];\n }\n }\n let matches = getMatchingTypes(types, modifier, options, tailwindConfig);\n // Find first matching type\n for (let match of matches){\n return match;\n }\n return [];\n}\nfunction* getMatchingTypes(types, rawModifier, options, tailwindConfig) {\n let modifiersEnabled = (0, _featureFlags.flagEnabled)(tailwindConfig, \"generalizedModifiers\");\n let [modifier, utilityModifier] = splitUtilityModifier(rawModifier);\n let canUseUtilityModifier = modifiersEnabled && options.modifiers != null && (options.modifiers === \"any\" || typeof options.modifiers === \"object\" && (utilityModifier && isArbitraryValue(utilityModifier) || utilityModifier in options.modifiers));\n if (!canUseUtilityModifier) {\n modifier = rawModifier;\n utilityModifier = undefined;\n }\n if (utilityModifier !== undefined && modifier === \"\") {\n modifier = \"DEFAULT\";\n }\n // Check the full value first\n // TODO: Move to asValue… somehow\n if (utilityModifier !== undefined) {\n if (typeof options.modifiers === \"object\") {\n var _options_modifiers;\n var _options_modifiers_utilityModifier;\n let configValue = (_options_modifiers_utilityModifier = (_options_modifiers = options.modifiers) === null || _options_modifiers === void 0 ? void 0 : _options_modifiers[utilityModifier]) !== null && _options_modifiers_utilityModifier !== void 0 ? _options_modifiers_utilityModifier : null;\n if (configValue !== null) {\n utilityModifier = configValue;\n } else if (isArbitraryValue(utilityModifier)) {\n utilityModifier = unwrapArbitraryModifier(utilityModifier);\n }\n }\n }\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n yield [\n result,\n type,\n utilityModifier !== null && utilityModifier !== void 0 ? utilityModifier : null\n ];\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return toColorValue;\n }\n});\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _corePluginList = /*#__PURE__*/ _interop_require_default(require(\"../corePluginList\"));\nconst _configurePlugins = /*#__PURE__*/ _interop_require_default(require(\"./configurePlugins\"));\nconst _colors = /*#__PURE__*/ _interop_require_default(require(\"../public/colors\"));\nconst _defaults = require(\"./defaults\");\nconst _toPath = require(\"./toPath\");\nconst _normalizeConfig = require(\"./normalizeConfig\");\nconst _isPlainObject = /*#__PURE__*/ _interop_require_default(require(\"./isPlainObject\"));\nconst _cloneDeep = require(\"./cloneDeep\");\nconst _pluginUtils = require(\"./pluginUtils\");\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _toColorValue = /*#__PURE__*/ _interop_require_default(require(\"./toColorValue\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources){\n for(let k in source){\n let merged = customizer(target[k], source[k]);\n if (merged === undefined) {\n if ((0, _isPlainObject.default)(target[k]) && (0, _isPlainObject.default)(source[k])) {\n target[k] = mergeWith({}, target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nconst configUtils = {\n colors: _colors.default,\n negative (scale) {\n // TODO: Log that this function isn't really needed anymore?\n return Object.keys(scale).filter((key)=>scale[key] !== \"0\").reduce((negativeScale, key)=>{\n let negativeValue = (0, _negateValue.default)(scale[key]);\n if (negativeValue !== undefined) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints (screens) {\n return Object.keys(screens).filter((key)=>typeof screens[key] === \"string\").reduce((breakpoints, key)=>({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }), {});\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend })=>{\n return mergeWith(merged, extend, (mergedValue, extendValue)=>{\n if (mergedValue === undefined) {\n return [\n extendValue\n ];\n }\n if (Array.isArray(mergedValue)) {\n return [\n extendValue,\n ...mergedValue\n ];\n }\n return [\n extendValue,\n mergedValue\n ];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme)=>(0, _defaults.defaults)(merged, theme), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value) {\n // When we have an array of objects, we do want to merge it\n if (Array.isArray(merged) && (0, _isPlainObject.default)(merged[0])) {\n return merged.concat(value);\n }\n // When the incoming value is an array, and the existing config is an object, prepend the existing object\n if (Array.isArray(value) && (0, _isPlainObject.default)(value[0]) && (0, _isPlainObject.default)(merged)) {\n return [\n merged,\n ...value\n ];\n }\n // Override arrays (for example for font-families, box-shadows, ...)\n if (Array.isArray(value)) {\n return value;\n }\n // Execute default behaviour\n return undefined;\n}\nfunction mergeExtensions({ extend , ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions)=>{\n // The `extend` property is an array, so we need to check if it contains any functions\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils)=>mergeWith({}, ...[\n themeValue,\n ...extensions\n ].map((e)=>value(e, resolveThemePath, utils)), mergeExtensionCustomizer);\n });\n}\n/**\n *\n * @param {string} key\n * @return {Iterable<string[] & {alpha: string | undefined}>}\n */ function* toPaths(key) {\n let path = (0, _toPath.toPath)(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern);\n if (matches !== null) {\n let [, prefix, alpha] = matches;\n let newPath = (0, _toPath.toPath)(prefix);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n // theme('colors.red.500 / 0.5') -> ['colors', 'red', '500 / 0', '5]\n const resolvePath = (key, defaultValue)=>{\n for (const path of toPaths(key)){\n let index = 0;\n let val = object;\n while(val !== undefined && val !== null && index < path.length){\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === undefined || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath, configUtils) : val;\n }\n if (val !== undefined) {\n if (path.alpha !== undefined) {\n let normalized = (0, _pluginUtils.parseColorFormat)(val);\n return (0, _withAlphaVariable.withAlphaValue)(normalized, path.alpha, (0, _toColorValue.default)(normalized));\n }\n if ((0, _isPlainObject.default)(val)) {\n return (0, _cloneDeep.cloneDeep)(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath, {\n theme: resolvePath,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key)=>{\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config)=>{\n allConfigs = [\n ...allConfigs,\n config\n ];\n var _config_plugins;\n const plugins = (_config_plugins = config === null || config === void 0 ? void 0 : config.plugins) !== null && _config_plugins !== void 0 ? _config_plugins : [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin)=>{\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n var _plugin_config;\n allConfigs = [\n ...allConfigs,\n ...extractPluginConfigs([\n (_plugin_config = plugin === null || plugin === void 0 ? void 0 : plugin.config) !== null && _plugin_config !== void 0 ? _plugin_config : {}\n ])\n ];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [\n ...corePluginConfigs\n ].reduceRight((resolved, corePluginConfig)=>{\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({\n corePlugins: resolved\n });\n }\n return (0, _configurePlugins.default)(corePluginConfig, resolved);\n }, _corePluginList.default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [\n ...pluginLists\n ].reduceRight((resolved, pluginList)=>{\n return [\n ...resolved,\n ...pluginList\n ];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\"\n }\n ];\n var _t_theme, _c_plugins;\n return (0, _normalizeConfig.normalizeConfig)((0, _defaults.defaults)({\n theme: resolveFunctionKeys(mergeExtensions(mergeThemes(allConfigs.map((t)=>{\n return (_t_theme = t === null || t === void 0 ? void 0 : t.theme) !== null && _t_theme !== void 0 ? _t_theme : {};\n })))),\n corePlugins: resolveCorePlugins(allConfigs.map((c)=>c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c)=>{\n return (_c_plugins = c === null || c === void 0 ? void 0 : c.plugins) !== null && _c_plugins !== void 0 ? _c_plugins : [];\n }))\n }, ...allConfigs));\n}\n","module.exports = {\n content: [],\n presets: [],\n darkMode: 'media', // or 'class'\n theme: {\n accentColor: ({ theme }) => ({\n ...theme('colors'),\n auto: 'auto',\n }),\n animation: {\n none: 'none',\n spin: 'spin 1s linear infinite',\n ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',\n pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n bounce: 'bounce 1s infinite',\n },\n aria: {\n busy: 'busy=\"true\"',\n checked: 'checked=\"true\"',\n disabled: 'disabled=\"true\"',\n expanded: 'expanded=\"true\"',\n hidden: 'hidden=\"true\"',\n pressed: 'pressed=\"true\"',\n readonly: 'readonly=\"true\"',\n required: 'required=\"true\"',\n selected: 'selected=\"true\"',\n },\n aspectRatio: {\n auto: 'auto',\n square: '1 / 1',\n video: '16 / 9',\n },\n backdropBlur: ({ theme }) => theme('blur'),\n backdropBrightness: ({ theme }) => theme('brightness'),\n backdropContrast: ({ theme }) => theme('contrast'),\n backdropGrayscale: ({ theme }) => theme('grayscale'),\n backdropHueRotate: ({ theme }) => theme('hueRotate'),\n backdropInvert: ({ theme }) => theme('invert'),\n backdropOpacity: ({ theme }) => theme('opacity'),\n backdropSaturate: ({ theme }) => theme('saturate'),\n backdropSepia: ({ theme }) => theme('sepia'),\n backgroundColor: ({ theme }) => theme('colors'),\n backgroundImage: {\n none: 'none',\n 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n },\n backgroundOpacity: ({ theme }) => theme('opacity'),\n backgroundPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n backgroundSize: {\n auto: 'auto',\n cover: 'cover',\n contain: 'contain',\n },\n blur: {\n 0: '0',\n none: '0',\n sm: '4px',\n DEFAULT: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '40px',\n '3xl': '64px',\n },\n borderColor: ({ theme }) => ({\n ...theme('colors'),\n DEFAULT: theme('colors.gray.200', 'currentColor'),\n }),\n borderOpacity: ({ theme }) => theme('opacity'),\n borderRadius: {\n none: '0px',\n sm: '0.125rem',\n DEFAULT: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n borderSpacing: ({ theme }) => ({\n ...theme('spacing'),\n }),\n borderWidth: {\n DEFAULT: '1px',\n 0: '0px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n boxShadow: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n none: 'none',\n },\n boxShadowColor: ({ theme }) => theme('colors'),\n brightness: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n caretColor: ({ theme }) => theme('colors'),\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose,\n }),\n columns: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n '3xs': '16rem',\n '2xs': '18rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n },\n container: {},\n content: {\n none: 'none',\n },\n contrast: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 100: '1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n cursor: {\n auto: 'auto',\n default: 'default',\n pointer: 'pointer',\n wait: 'wait',\n text: 'text',\n move: 'move',\n help: 'help',\n 'not-allowed': 'not-allowed',\n none: 'none',\n 'context-menu': 'context-menu',\n progress: 'progress',\n cell: 'cell',\n crosshair: 'crosshair',\n 'vertical-text': 'vertical-text',\n alias: 'alias',\n copy: 'copy',\n 'no-drop': 'no-drop',\n grab: 'grab',\n grabbing: 'grabbing',\n 'all-scroll': 'all-scroll',\n 'col-resize': 'col-resize',\n 'row-resize': 'row-resize',\n 'n-resize': 'n-resize',\n 'e-resize': 'e-resize',\n 's-resize': 's-resize',\n 'w-resize': 'w-resize',\n 'ne-resize': 'ne-resize',\n 'nw-resize': 'nw-resize',\n 'se-resize': 'se-resize',\n 'sw-resize': 'sw-resize',\n 'ew-resize': 'ew-resize',\n 'ns-resize': 'ns-resize',\n 'nesw-resize': 'nesw-resize',\n 'nwse-resize': 'nwse-resize',\n 'zoom-in': 'zoom-in',\n 'zoom-out': 'zoom-out',\n },\n divideColor: ({ theme }) => theme('borderColor'),\n divideOpacity: ({ theme }) => theme('borderOpacity'),\n divideWidth: ({ theme }) => theme('borderWidth'),\n dropShadow: {\n sm: '0 1px 1px rgb(0 0 0 / 0.05)',\n DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],\n md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],\n lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],\n xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],\n '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',\n none: '0 0 #0000',\n },\n fill: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n flex: {\n 1: '1 1 0%',\n auto: '1 1 auto',\n initial: '0 1 auto',\n none: 'none',\n },\n flexBasis: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n }),\n flexGrow: {\n 0: '0',\n DEFAULT: '1',\n },\n flexShrink: {\n 0: '0',\n DEFAULT: '1',\n },\n fontFamily: {\n sans: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n '\"Noto Sans\"',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: ['ui-serif', 'Georgia', 'Cambria', '\"Times New Roman\"', 'Times', 'serif'],\n mono: [\n 'ui-monospace',\n 'SFMono-Regular',\n 'Menlo',\n 'Monaco',\n 'Consolas',\n '\"Liberation Mono\"',\n '\"Courier New\"',\n 'monospace',\n ],\n },\n fontSize: {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n '2xl': ['1.5rem', { lineHeight: '2rem' }],\n '3xl': ['1.875rem', { lineHeight: '2.25rem' }],\n '4xl': ['2.25rem', { lineHeight: '2.5rem' }],\n '5xl': ['3rem', { lineHeight: '1' }],\n '6xl': ['3.75rem', { lineHeight: '1' }],\n '7xl': ['4.5rem', { lineHeight: '1' }],\n '8xl': ['6rem', { lineHeight: '1' }],\n '9xl': ['8rem', { lineHeight: '1' }],\n },\n fontWeight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n gap: ({ theme }) => theme('spacing'),\n gradientColorStops: ({ theme }) => theme('colors'),\n gradientColorStopPositions: {\n '0%': '0%',\n '5%': '5%',\n '10%': '10%',\n '15%': '15%',\n '20%': '20%',\n '25%': '25%',\n '30%': '30%',\n '35%': '35%',\n '40%': '40%',\n '45%': '45%',\n '50%': '50%',\n '55%': '55%',\n '60%': '60%',\n '65%': '65%',\n '70%': '70%',\n '75%': '75%',\n '80%': '80%',\n '85%': '85%',\n '90%': '90%',\n '95%': '95%',\n '100%': '100%',\n },\n grayscale: {\n 0: '0',\n DEFAULT: '100%',\n },\n gridAutoColumns: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridAutoRows: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridColumn: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-7': 'span 7 / span 7',\n 'span-8': 'span 8 / span 8',\n 'span-9': 'span 9 / span 9',\n 'span-10': 'span 10 / span 10',\n 'span-11': 'span 11 / span 11',\n 'span-12': 'span 12 / span 12',\n 'span-full': '1 / -1',\n },\n gridColumnEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridColumnStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridRow: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-full': '1 / -1',\n },\n gridRowEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridRowStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridTemplateColumns: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n },\n gridTemplateRows: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n },\n height: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n hueRotate: {\n 0: '0deg',\n 15: '15deg',\n 30: '30deg',\n 60: '60deg',\n 90: '90deg',\n 180: '180deg',\n },\n inset: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n invert: {\n 0: '0',\n DEFAULT: '100%',\n },\n keyframes: {\n spin: {\n to: {\n transform: 'rotate(360deg)',\n },\n },\n ping: {\n '75%, 100%': {\n transform: 'scale(2)',\n opacity: '0',\n },\n },\n pulse: {\n '50%': {\n opacity: '.5',\n },\n },\n bounce: {\n '0%, 100%': {\n transform: 'translateY(-25%)',\n animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',\n },\n '50%': {\n transform: 'none',\n animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',\n },\n },\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n 3: '.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n },\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n },\n listStyleImage: {\n none: 'none',\n },\n margin: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n }),\n lineClamp: {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n },\n maxHeight: ({ theme }) => ({\n ...theme('spacing'),\n none: 'none',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n none: 'none',\n 0: '0rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n prose: '65ch',\n ...breakpoints(theme('screens')),\n }),\n minHeight: {\n 0: '0px',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n minWidth: {\n 0: '0px',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n objectPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n opacity: {\n 0: '0',\n 5: '0.05',\n 10: '0.1',\n 20: '0.2',\n 25: '0.25',\n 30: '0.3',\n 40: '0.4',\n 50: '0.5',\n 60: '0.6',\n 70: '0.7',\n 75: '0.75',\n 80: '0.8',\n 90: '0.9',\n 95: '0.95',\n 100: '1',\n },\n order: {\n first: '-9999',\n last: '9999',\n none: '0',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n outlineColor: ({ theme }) => theme('colors'),\n outlineOffset: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n outlineWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n padding: ({ theme }) => theme('spacing'),\n placeholderColor: ({ theme }) => theme('colors'),\n placeholderOpacity: ({ theme }) => theme('opacity'),\n ringColor: ({ theme }) => ({\n DEFAULT: theme('colors.blue.500', '#3b82f6'),\n ...theme('colors'),\n }),\n ringOffsetColor: ({ theme }) => theme('colors'),\n ringOffsetWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: '0.5',\n ...theme('opacity'),\n }),\n ringWidth: {\n DEFAULT: '3px',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n rotate: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n 45: '45deg',\n 90: '90deg',\n 180: '180deg',\n },\n saturate: {\n 0: '0',\n 50: '.5',\n 100: '1',\n 150: '1.5',\n 200: '2',\n },\n scale: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n },\n screens: {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n scrollMargin: ({ theme }) => ({\n ...theme('spacing'),\n }),\n scrollPadding: ({ theme }) => theme('spacing'),\n sepia: {\n 0: '0',\n DEFAULT: '100%',\n },\n skew: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n },\n space: ({ theme }) => ({\n ...theme('spacing'),\n }),\n spacing: {\n px: '1px',\n 0: '0px',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n stroke: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n strokeWidth: {\n 0: '0',\n 1: '1',\n 2: '2',\n },\n supports: {},\n data: {},\n textColor: ({ theme }) => theme('colors'),\n textDecorationColor: ({ theme }) => theme('colors'),\n textDecorationThickness: {\n auto: 'auto',\n 'from-font': 'from-font',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textIndent: ({ theme }) => ({\n ...theme('spacing'),\n }),\n textOpacity: ({ theme }) => theme('opacity'),\n textUnderlineOffset: {\n auto: 'auto',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left',\n },\n transitionDelay: {\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionDuration: {\n DEFAULT: '150ms',\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionProperty: {\n none: 'none',\n all: 'all',\n DEFAULT:\n 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',\n colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform',\n },\n transitionTimingFunction: {\n DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',\n },\n translate: ({ theme }) => ({\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n width: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n screen: '100vw',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n willChange: {\n auto: 'auto',\n scroll: 'scroll-position',\n contents: 'contents',\n transform: 'transform',\n },\n zIndex: {\n auto: 'auto',\n 0: '0',\n 10: '10',\n 20: '20',\n 30: '30',\n 40: '40',\n 50: '50',\n },\n },\n plugins: [],\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return getAllConfigs;\n }\n});\nconst _configfull = /*#__PURE__*/ _interop_require_default(require(\"../../stubs/config.full.js\"));\nconst _featureFlags = require(\"../featureFlags\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getAllConfigs(config) {\n var _config_presets;\n const configs = ((_config_presets = config === null || config === void 0 ? void 0 : config.presets) !== null && _config_presets !== void 0 ? _config_presets : [\n _configfull.default\n ]).slice().reverse().flatMap((preset)=>getAllConfigs(preset instanceof Function ? preset() : preset));\n const features = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: ({ theme })=>({\n DEFAULT: \"#3b82f67f\",\n ...theme(\"colors\")\n })\n }\n },\n disableColorOpacityUtilitiesByDefault: {\n corePlugins: {\n backgroundOpacity: false,\n borderOpacity: false,\n divideOpacity: false,\n placeholderOpacity: false,\n ringOpacity: false,\n textOpacity: false\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature)=>(0, _featureFlags.flagEnabled)(config, feature)).map((feature)=>features[feature]);\n return [\n config,\n ...experimentals,\n ...configs\n ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _resolveConfig = /*#__PURE__*/ _interop_require_default(require(\"../util/resolveConfig\"));\nconst _getAllConfigs = /*#__PURE__*/ _interop_require_default(require(\"../util/getAllConfigs\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction resolveConfig(...configs) {\n let [, ...defaultConfigs] = (0, _getAllConfigs.default)(configs[0]);\n return (0, _resolveConfig.default)([\n ...configs,\n ...defaultConfigs\n ]);\n}\n","let resolveConfig = require('./lib/public/resolve-config')\nmodule.exports = (resolveConfig.__esModule ? resolveConfig : { default: resolveConfig }).default\n","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","import * as TailwindColors from \"tailwindcss/colors\"\n\nexport const BrandColors = {\n 50: \"#FCE3E4\",\n 100: \"#F9CDCE\",\n 200: \"#F39699\",\n 300: \"#ED6368\",\n 400: \"#E72C32\",\n 500: \"#C4161C\",\n 600: \"#9C1216\",\n 700: \"#770D11\",\n 800: \"#4E090B\",\n 900: \"#290506\",\n}\n\nconst customColors = {\n onprimary: TailwindColors.white,\n warning: TailwindColors.amber,\n error: TailwindColors.rose,\n info: TailwindColors.cyan,\n success: TailwindColors.lime,\n primary: TailwindColors.sky,\n brand: BrandColors,\n}\n\nexport const CustomColors = {\n ...customColors,\n // Warning\n warning: customColors.warning[\"500\"],\n \"warning-darken\": customColors.warning[\"600\"],\n \"warning-lighten\": customColors.warning[\"400\"],\n // Success\n success: customColors.success[\"500\"],\n \"success-darken\": customColors.success[\"600\"],\n \"success-lighten\": customColors.success[\"400\"],\n // Error\n error: customColors.error[\"500\"],\n \"error-darken\": customColors.error[\"600\"],\n \"error-lighten\": customColors.error[\"400\"],\n // Info\n info: customColors.info[\"500\"],\n \"info-darken\": customColors.info[\"600\"],\n \"info-lighten\": customColors.info[\"400\"],\n // Primary\n primary: customColors.primary[\"500\"],\n \"primary-darken\": customColors.primary[\"600\"],\n \"primary-lighten\": customColors.primary[\"400\"],\n // Surfaces\n onsurface: TailwindColors.slate[\"500\"],\n onbackground: TailwindColors.slate[\"700\"],\n surface: TailwindColors.slate[\"50\"],\n background: TailwindColors.white,\n}\n\nexport default {\n prefix: \"e-\",\n corePlugins: {\n preflight: false,\n },\n content: [\"./src/**/*.{html,js,vue,ts}\"],\n theme: {\n extend: {\n colors: CustomColors,\n maxWidth: {\n \"1/12\": \"8.333333333%\",\n \"2/12\": \"16.666666666%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333333%\",\n \"5/12\": \"41.666666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333334%\",\n \"8/12\": \"66.666666666%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333334%\",\n \"11/12\": \"91.666666666%\",\n \"12/12\": \"100%\",\n },\n },\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\",\n },\n },\n plugins: [],\n safelist: [\n {\n pattern: /e-w-(full|auto)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-grow/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-basis-(\\d{1,2}\\/\\d{1,2}|full|auto|0)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /^!?e-max-w-(\\d{1,2}\\/\\d{1,2})/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-offset-(1[0-2]|[1-9])/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern: /e-items-(start|center|end|baseline|stretch)/,\n },\n {\n pattern: /e-self-(start|center|end|baseline|stretch)/,\n },\n {\n pattern:\n /e-justify-(around|between|center|end|evenly|normal|start|stretch)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\n },\n {\n pattern:\n /e-content-(around|baseline|between|center|end|evenly|normal|start|stretch)/,\n },\n ],\n}\n","import resolveConfig from \"tailwindcss/resolveConfig\"\nimport tailwindConfig from \"../config\"\nimport { Size, BaseColor } from \"@/types\"\n\nexport const fullConfig = resolveConfig(tailwindConfig) as any\n\nexport const TextSizes = fullConfig.theme.fontSize\n\nexport const Colors = fullConfig.theme.colors\n\nexport const BadgeSizes = [\n Size.dot,\n Size.xs,\n Size.sm,\n Size.md,\n Size.lg,\n Size.xl,\n] as const\n\nexport const AvatarSizes = [\n Size.xs,\n Size.sm,\n Size.md,\n Size.lg,\n Size.xl,\n Size[\"2xl\"],\n] as const\n\nexport const IconSizes = [\n Size.xs,\n Size.sm,\n Size.md,\n Size.base,\n Size.lg,\n Size.xl,\n Size[\"2xl\"],\n Size[\"3xl\"],\n Size[\"4xl\"],\n Size[\"5xl\"],\n Size[\"6xl\"],\n Size[\"7xl\"],\n Size[\"8xl\"],\n Size[\"9xl\"],\n] as const\n\nexport const BadgeColors = [\n BaseColor.warning,\n BaseColor.error,\n BaseColor.info,\n BaseColor.success,\n BaseColor.primary,\n BaseColor.default,\n] as const\n\nexport const EVENTS = [\n \"play\",\n \"pause\",\n \"ended\",\n \"loadeddata\",\n \"waiting\",\n \"playing\",\n \"timeupdate\",\n \"canplay\",\n \"canplaythrough\",\n \"statechanged\",\n]\n\nexport default {}\n","\nimport Vue, { PropType } from \"vue\"\nimport { IconSizes } from \"@/constants\"\nimport { BaseColor, Size, TailwindColorClass, TIconSize } from \"@/types\"\n\nexport default Vue.extend({\n name: \"EIcon\",\n props: {\n icon: {\n type: String,\n default: \"\",\n },\n color: {\n type: String as PropType<TailwindColorClass>,\n default: BaseColor.default,\n },\n size: {\n type: String as PropType<TIconSize>,\n default: Size.sm,\n },\n },\n computed: {\n sizes(): Record<Size, string> {\n return IconSizes.reduce((acc, s) => {\n return {\n ...acc,\n [s]: `e-text-${s}`,\n }\n }, {}) as Record<Size, string>\n },\n iconClasses(): string[] {\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.sm]\n const iconClasses = `${\n this.icon?.split(\" \")?.length > 1 ? this.icon : `fa fa-${this.icon}`\n }`\n const color = this.color\n\n return [\n \"e-inline-flex e-items-center e-justify-center e-rounded-full\",\n color,\n iconClasses,\n sizeClasses,\n ]\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport { Size } from \"@/types\"\nimport { TextSizes, Colors } from \"@/constants\"\n\nexport default Vue.extend({\n name: \"ESpinner\",\n props: {\n dark: {\n type: Boolean,\n default: false,\n },\n color: {\n type: Boolean,\n default: true,\n },\n animationDuration: {\n type: [Number, String],\n default: 1000,\n },\n size: {\n type: String as PropType<Size>,\n default: Size.base,\n },\n opacity: {\n type: [String, Number],\n default: 1,\n },\n },\n data() {\n return {\n sizes: TextSizes,\n colors: Colors,\n }\n },\n computed: {\n computedSize(): number {\n return this.sizes[Size[this.size]] || this.size || this.sizes[Size.base]\n },\n fill(): { primary: string; secondary: string } {\n let fill = {\n primary: this.colors.brand[500],\n secondary: this.colors.neutral[300],\n }\n\n if (this.dark && !this.color) {\n fill = {\n primary: this.colors.neutral[100],\n secondary: this.colors.neutral[100],\n }\n }\n\n if (!this.dark && this.color) {\n fill = {\n primary: this.colors.brand[500],\n secondary: this.colors.neutral[950],\n }\n }\n\n if (!this.dark && !this.color) {\n fill = {\n primary: this.colors.neutral[200],\n secondary: this.colors.neutral[200],\n }\n }\n\n return fill\n },\n },\n methods: {\n getNthPathStyle(index: number) {\n const animationDuration =\n typeof this.animationDuration === \"string\"\n ? Number.parseInt(this.animationDuration)\n : this.animationDuration\n\n return {\n animationDuration: `${this.animationDuration}ms`,\n animationDelay: `${(index / 10) * animationDuration}ms`,\n fill: `${this.fill[index % 2 === 0 ? \"primary\" : \"secondary\"]}`,\n }\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport { FlexAlignContent, FlexAlignItems, FlexJustifyContent } from \"@/types\"\n\nexport default Vue.extend({\n props: {\n align: {\n type: String as PropType<FlexAlignItems>,\n default: undefined,\n },\n alignContent: {\n type: String as PropType<FlexAlignContent>,\n default: undefined,\n },\n justify: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyXs: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifySm: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyMd: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyLg: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n justifyXl: {\n type: String as PropType<FlexJustifyContent>,\n default: undefined,\n },\n noGutters: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n },\n computed: {\n justifyClasses(): Record<string, boolean> {\n return {\n [`e-justify-${this.justify}`]: !!this.justify,\n [`xs:e-justify-${this.justifySm}`]: !!this.justifySm,\n [`sm:e-justify-${this.justifySm}`]: !!this.justifySm,\n [`md:e-justify-${this.justifyMd}`]: !!this.justifyMd,\n [`lg:e-justify-${this.justifyLg}`]: !!this.justifyLg,\n [`xl:e-justify-${this.justifyXl}`]: !!this.justifyXl,\n }\n },\n rowClasses(): Record<string, boolean> {\n return {\n ...(this.align ? { [`e-items-${this.align}`]: true } : {}),\n ...(this.alignContent\n ? { [`e-content-${this.alignContent}`]: true }\n : {}),\n ...(this.noGutters ? { [\"e-row--no-gutters\"]: true } : {}),\n ...this.justifyClasses,\n }\n },\n },\n})\n","\nimport Vue, { PropType } from \"vue\"\nimport { FlexAlignSelf } from \"@/types\"\n\nexport default Vue.extend({\n props: {\n alignSelf: {\n type: String as PropType<FlexAlignSelf>,\n default: \"auto\",\n },\n cols: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n lg: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n md: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n offset: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetLg: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetMd: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetSm: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetXs: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n offsetXl: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n sm: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n xs: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n xl: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: undefined,\n },\n },\n computed: {\n colClasses(): Record<string, boolean> {\n return {\n // Align self\n ...(this.alignSelf ? { [`e-self-${this.alignSelf}`]: true } : {}),\n\n // cols=\"auto\"\n [this.autoClasses(\"xs:\", this.xs)]: this.isSizePropAuto(this.xs),\n [this.autoClasses(\"sm:\", this.sm)]: this.isSizePropAuto(this.sm),\n [this.autoClasses(\"md:\", this.md)]: this.isSizePropAuto(this.md),\n [this.autoClasses(\"lg:\", this.lg)]: this.isSizePropAuto(this.lg),\n [this.autoClasses(\"xl:e\", this.xl)]: this.isSizePropAuto(this.xl),\n [this.autoClasses(\"\", this.cols)]: this.isSizePropAuto(this.cols, true),\n\n // cols=\"12\"\n \"xs:e-basis-full xs:!e-max-w-12/12\": this.xs === 12 || this.xs === \"12\",\n \"sm:e-basis-full sm:!e-max-w-12/12\": this.sm === 12 || this.sm === \"12\",\n \"md:e-basis-full md:!e-max-w-12/12\": this.md === 12 || this.md === \"12\",\n \"lg:e-basis-full lg:!e-max-w-12/12\": this.lg === 12 || this.lg === \"12\",\n \"xl:e-basis-full xl:!e-max-w-12/12\": this.xl === 12 || this.xl === \"12\",\n \"e-basis-full e-max-w-12/12\": this.cols === 12 || this.cols === \"12\",\n\n // cols=\"n\"\n [`xs:e-basis-${this.xs}/12 xs:!e-max-w-${this.xs}/12`]:\n this.isSizePropertyNumeric(this.xs),\n [`sm:e-basis-${this.sm}/12 sm:!e-max-w-${this.sm}/12`]:\n this.isSizePropertyNumeric(this.sm),\n [`md:e-basis-${this.md}/12 md:!e-max-w-${this.md}/12`]:\n this.isSizePropertyNumeric(this.md),\n [`lg:e-basis-${this.lg}/12 lg:!e-max-w-${this.lg}/12`]:\n this.isSizePropertyNumeric(this.lg),\n [`xl:e-basis-${this.xl}/12 xl:!e-max-w-${this.xl}/12`]:\n this.isSizePropertyNumeric(this.xl),\n [`e-basis-${this.cols}/12 !e-max-w-${this.cols}/12`]:\n this.isSizePropertyNumeric(this.cols),\n\n // offset=\"n\"\n [`xs:e-offset-${this.offsetXs}`]: this.offsetXs !== undefined,\n [`sm:e-offset-${this.offsetSm}`]: this.offsetSm !== undefined,\n [`md:e-offset-${this.offsetMd}`]: this.offsetMd !== undefined,\n [`lg:e-offset-${this.offsetLg}`]: this.offsetLg !== undefined,\n [`xl:e-offset-${this.offsetXl}`]: this.offsetXl !== undefined,\n [`e-offset-${this.offset}`]: this.offset !== undefined,\n }\n },\n },\n methods: {\n autoClasses(prefix: string, value: boolean | string | number) {\n const basis = value === \"auto\" ? \"auto\" : \"0\"\n const grow = value === \"auto\" ? \"-0\" : \"\"\n const width = value === \"auto\" ? \"auto\" : \"full\"\n\n return `${prefix}e-basis-${basis} ${prefix}e-grow${grow} ${prefix}e-w-${width}`\n },\n isSizePropAuto(\n prop: boolean | string | number | undefined,\n acceptUndefined = false\n ) {\n return (\n prop === \"auto\" ||\n prop === 0 ||\n prop === \"0\" ||\n (acceptUndefined && !prop)\n )\n },\n isSizePropertyNumeric(prop: boolean | string | number | undefined) {\n const n = Number.parseInt(prop as string)\n\n return prop !== \"auto\" && !isNaN(n) && n >= 1 && n < 12\n },\n },\n})\n","export function isFullScreen() {\n return !!(\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement\n )\n}\n\nexport function makeFullScreen(element: HTMLElement) {\n if (isFullScreen()) {\n return new Promise((resolve) => resolve())\n }\n\n if (element.requestFullscreen) {\n return element?.requestFullscreen()\n } else if (element.mozRequestFullScreen) {\n return element?.mozRequestFullScreen()\n } else if (element.webkitRequestFullScreen) {\n return element?.webkitRequestFullScreen()\n } else if (element.msRequestFullscreen) {\n return element?.msRequestFullscreen()\n }\n}\n\nexport function exitFullScreen() {\n if (!isFullScreen()) {\n return new Promise((resolve) => resolve())\n }\n\n if (document.exitFullscreen) {\n return document.exitFullscreen()\n } else if (document.mozCancelFullScreen) {\n return document.mozCancelFullScreen()\n } else if (document.webkitCancelFullScreen) {\n return document.webkitCancelFullScreen()\n } else if (document.msExitFullscreen) {\n return document.msExitFullscreen()\n }\n}\n","\nimport Vue, { PropType } from \"vue\"\nimport { makeFullScreen, exitFullScreen } from \"@/utils\"\nimport ESpinner from \"@/components/ESpinner.vue\"\n// types:\nexport type VideoSource = {\n type: string\n src: string\n}\n\n// Helper functions\nconst leadingZeroFormatter = new Intl.NumberFormat(undefined, {\n minimumIntegerDigits: 2,\n})\n\n// List of events so we can bind them on mount\nexport const VIDEO_PLAYER_EVENTS = [\n \"play\",\n \"pause\",\n \"ended\",\n \"loadeddata\",\n \"waiting\",\n \"playing\",\n \"timeupdate\",\n \"canplay\",\n \"canplaythrough\",\n \"statechanged\",\n \"error\",\n]\n\nconst formatDuration = (time: number) => {\n const seconds = Math.floor(time % 60)\n const minutes = Math.floor(time / 60) % 60\n const hours = Math.floor(time / 3600)\n if (hours === 0) {\n return `${minutes}:${leadingZeroFormatter.format(seconds)}`\n } else {\n return `${hours}:${leadingZeroFormatter.format(\n minutes\n )}:${leadingZeroFormatter.format(seconds)}`\n }\n}\n\nexport default Vue.extend({\n name: \"VideoPlayer\",\n components: {\n ESpinner,\n },\n props: {\n sources: {\n type: [Array, String] as PropType<VideoSource[] | string>,\n required: true,\n },\n videoListeners: {\n type: Object as PropType<Partial<HTMLVideoElement>>,\n default: () => ({}),\n },\n videoOptions: {\n type: Object as PropType<Partial<HTMLVideoElement>>,\n default: () => ({}),\n },\n },\n data() {\n return {\n playing: false,\n percentagePlayed: 0,\n videoLength: \"0:00\",\n duration: 0,\n videoDuration: 0,\n currentTime: \"0:00\",\n realtime: 0,\n isScrubbing: false,\n wasPaused: false,\n isFullscreen: false,\n isFinished: false,\n isLoading: true,\n isError: false,\n }\n },\n computed: {\n sourceItems() {\n return (\n Array.isArray(this.sources) ? this.sources : [{ src: this.sources }]\n ) as VideoSource[]\n },\n hasStartedOrFinished(): boolean {\n return (\n (this.isFinished || this.realtime <= 0.1) &&\n !this.isLoading &&\n !this.isLooped()\n )\n },\n withControls() {\n const videoOptions = this.videoOptions as Partial<HTMLVideoElement>\n\n return videoOptions?.controls === false ? \"hide\" : \"\"\n },\n },\n mounted() {\n this.bindEvents()\n this.initializePlayer()\n this.initializeFullscreenListeners()\n },\n destroyed() {\n this.unbindEvents()\n this.destroyPlayer()\n this.removeFullscreenListeners()\n },\n\n methods: {\n handle404Error() {\n this.isError = true\n this.isLoading = false\n this.playing = false\n },\n bindEvents() {\n VIDEO_PLAYER_EVENTS.forEach((event) => {\n this.bindVideoEvent(event)\n })\n },\n unbindEvents() {\n VIDEO_PLAYER_EVENTS.forEach((event) => {\n this.unbindVideoEvent(event)\n })\n },\n bindVideoEvent(which: string) {\n const player = this.$refs.player as HTMLVideoElement\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n player.addEventListener(\n which,\n (event) => {\n if (which === \"loadeddata\") {\n this.videoLength = formatDuration(player.duration)\n }\n\n if (which === \"timeupdate\") {\n this.percentagePlayed = (player.currentTime / player.duration) * 100\n timelineContainer.style.setProperty(\n \"--progress-position\",\n this.percentagePlayed.toString()\n )\n }\n\n this.$emit(which, { event, player: this })\n },\n true\n )\n },\n unbindVideoEvent(which: string) {\n const player = this.$refs.player as HTMLVideoElement\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n player.addEventListener(\n which,\n (event) => {\n if (which === \"loadeddata\") {\n this.videoLength = formatDuration(player.duration)\n }\n\n if (which === \"timeupdate\") {\n this.percentagePlayed = (player.currentTime / player.duration) * 100\n timelineContainer.style.setProperty(\n \"--progress-position\",\n this.percentagePlayed.toString()\n )\n }\n\n this.$emit(which, { event, player: this })\n },\n true\n )\n },\n initializePlayer() {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n if (playerRef.autoplay) {\n this.setPlaying(true)\n }\n document.addEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\n document.addEventListener(\"keydown\", this.handleKeyDown)\n },\n destroyPlayer() {\n window.removeEventListener(\"keydown\", this.handleKeyDown)\n document.removeEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\n },\n removeFullscreenListeners() {\n if (\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n ) {\n document.removeEventListener(\n \"fullscreenchange\",\n this.handleFullscreenChange\n )\n document.removeEventListener(\n \"webkitfullscreenchange\",\n this.handleFullscreenChange\n )\n document.removeEventListener(\n \"mozfullscreenchange\",\n this.handleFullscreenChange\n )\n document.removeEventListener(\n \"MSFullscreenChange\",\n this.handleFullscreenChange\n )\n } else {\n console.log(\"Fullscreen API is not supported in this browser.\")\n }\n },\n initializeFullscreenListeners() {\n if (\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n ) {\n document.addEventListener(\n \"fullscreenchange\",\n this.handleFullscreenChange\n )\n document.addEventListener(\n \"webkitfullscreenchange\",\n this.handleFullscreenChange\n )\n document.addEventListener(\n \"mozfullscreenchange\",\n this.handleFullscreenChange\n )\n document.addEventListener(\n \"MSFullscreenChange\",\n this.handleFullscreenChange\n )\n } else {\n console.log(\"Fullscreen API is not supported in this browser.\")\n }\n },\n handleFullscreenChange() {\n this.isFullscreen =\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement ||\n (window.innerWidth == screen.width &&\n window.innerHeight == screen.height)\n },\n\n isLooped() {\n const player = this.$refs.player as HTMLVideoElement\n\n return player.loop\n },\n handleScrubbingOnMouseEnd(e: MouseEvent) {\n if (this.isScrubbing) {\n this.toggleScrubbing(e)\n }\n },\n handleEnded() {\n this.isFinished = true\n this.playing = false\n },\n handleLoading() {\n this.isLoading = false\n },\n play() {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n const playPromise = playerRef.play()\n if (playPromise !== undefined) {\n playerRef\n .play()\n .then(() => this.setPlaying(true))\n .catch(console.error)\n }\n },\n pause() {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n playerRef.pause()\n this.setPlaying(false)\n },\n togglePlay() {\n if (this.playing) {\n this.pause()\n } else {\n this.play()\n }\n },\n setPlaying(state: boolean) {\n this.playing = state\n },\n seekToPercentage(percentage: number) {\n const playerRef = this.$refs.player as HTMLVideoElement\n if (!playerRef) {\n return\n }\n const currentTime = (percentage / 100) * playerRef.duration\n playerRef.currentTime = currentTime\n },\n convertTimeToDuration(seconds: number) {\n // @ts-ignore\n return [parseInt((seconds / 60) % 60, 10), parseInt(seconds % 60, 10)]\n .join(\":\")\n .replace(/\\b(\\d)\\b/g, \"0$1\")\n },\n\n closeFullscreenMode() {\n if (document.fullscreenElement) {\n exitFullScreen().then(() => {\n this.isFullscreen = false\n console.log(\"Exited fullscreen\")\n })\n\n this.isFullscreen = false\n }\n },\n openFullscreenMode() {\n const element = this.$refs.videoContainer as HTMLDivElement\n if (element) {\n makeFullScreen(element).then(() => {\n this.isFullscreen = true\n })\n this.isFullscreen = true\n }\n },\n toggleFullscreenMode() {\n if (this.isFullscreen) {\n this.closeFullscreenMode()\n } else {\n this.openFullscreenMode()\n }\n },\n\n getDuration() {\n const player = this.$refs.player as HTMLVideoElement\n this.videoLength = formatDuration(player.duration)\n this.videoDuration = player.duration\n },\n handleTimeUpdate() {\n const player = this.$refs.player as HTMLVideoElement\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n if (!player || !timelineContainer) {\n return\n }\n this.currentTime = formatDuration(player.currentTime)\n this.realtime = player.currentTime\n const percent = Number(this.realtime) / Number(this.videoDuration)\n timelineContainer.style.setProperty(\n \"--progress-position\",\n percent.toString()\n )\n },\n handleTimelineUpdate(e: MouseEvent) {\n const player = this.$refs.player as HTMLVideoElement\n if (!document.body.contains(player)) {\n return\n }\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n const rect = timelineContainer.getBoundingClientRect()\n const percent =\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\n timelineContainer.style.setProperty(\n \"--preview-position\",\n percent.toString()\n )\n if (this.isScrubbing) {\n e.preventDefault()\n timelineContainer.style.setProperty(\n \"--progress-position\",\n percent.toString()\n )\n }\n },\n skip(duration = 5) {\n const player = this.$refs.player as HTMLVideoElement\n\n player.currentTime += duration\n },\n async toggleScrubbing(e: MouseEvent) {\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\n const videoContainer = this.$refs.videoContainer as HTMLDivElement\n const player = this.$refs.player as HTMLVideoElement\n if (!player) {\n return\n }\n const rect = timelineContainer.getBoundingClientRect()\n const percent =\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\n this.isScrubbing = (e.buttons & 1) === 1\n videoContainer.classList.toggle(\"scrubbing\", this.isScrubbing)\n if (this.isScrubbing) {\n this.wasPaused = player.paused\n await player.pause()\n this.handleTimelineUpdate(e)\n\n return\n }\n this.realtime = percent * this.videoDuration\n player.currentTime = percent * this.videoDuration\n if (this.wasPaused) {\n return\n }\n const playPromise = player.play()\n // @see issue: https://developer.chrome.com/blog/play-request-was-interrupted/\n if (playPromise !== undefined) {\n playPromise\n .then(() => this.handleTimelineUpdate(e))\n .catch(console.error)\n }\n },\n\n handleKeyDown(e: KeyboardEvent) {\n const tagName = document.activeElement?.tagName.toLowerCase()\n if (tagName === \"input\") {\n return\n }\n switch (e.key.toLowerCase()) {\n case \" \":\n if (tagName === \"button\") {\n return\n }\n this.togglePlay()\n break\n case \"k\":\n this.togglePlay()\n break\n case \"escape\":\n e.preventDefault()\n this.closeFullscreenMode()\n this.isFullscreen = false\n\n break\n case \"f\":\n this.openFullscreenMode()\n this.isFullscreen = true\n\n break\n }\n },\n },\n})\n","import * as d3 from \"d3\"\nimport { TimelineAxis, TimelineAxesConfig } from \"@/types\"\n\nconst getFormattedDay = (d: Date) => {\n const day = d3.utcFormat(\"%_d\")(d)\n const daySuffixes: { [key: string]: string } = {\n [\"1\"]: \"st\",\n [\"2\"]: \"nd\",\n [\"3\"]: \"rd\",\n }\n\n const daySuffix = daySuffixes[day.charAt(1)] || \"th\"\n\n return `${day}${daySuffix}`\n}\n\nconst getFormattedDayNoEndOfMonth = (d: Date) => {\n const nextDay = new Date(\n Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() + 1)\n )\n const isEndOfTheMonth = nextDay.getUTCDate() === 1\n\n if (isEndOfTheMonth) {\n return \"\"\n }\n\n return d3.utcFormat(\"%-d\")(d)\n}\n\nconst getFormattedHour = (d: Date) => {\n return [\"0\", \" 0\", \"00\"].includes(d3.utcFormat(\"%H\")(d))\n ? \"\"\n : `${d3.utcFormat(\"%H\")(d)}h`\n}\n\nconst getFormattedHourMinute = (d: Date) => {\n const HH_MM = d3.utcFormat(\"%H:%M\")(d)\n\n return HH_MM === \"00:00\" ? \"\" : HH_MM\n}\n\nconst getFormattedMinuteSecond = (d: Date) => {\n return d3.utcFormat(\"%M:%S\")(d)\n}\n\nconst getFormattedOverviewMinuteSecond = (d: Date) => {\n const HH_MM_SS = d3.utcFormat(\"%Hh%Mm\")(d)\n\n return `${HH_MM_SS}`\n}\n\nconst getFormattedOverviewHour = (d: Date) => {\n const hour = getFormattedHourMinute(d)\n const day = getFormattedDay(d)\n const month = d3.utcFormat(\"%B\")(d)\n\n return hour || `${month} ${day}`\n}\n\nconst getFormattedDayHourMinute = (d: Date) => {\n const HH_MM = getFormattedHourMinute(d)\n const hour = Number.parseInt(d3.utcFormat(\"%H\")(d))\n const day = getFormattedDay(d)\n const month = d3.utcFormat(\"%B\")(d)\n\n if (HH_MM && hour % 6 === 0) {\n return `${month} ${day} ${HH_MM}`\n }\n\n return getFormattedOverviewHour(d)\n}\n\nconst filterHourDivisibleBy = (n: number) => {\n return (d: Date) => {\n const hour = d3.utcFormat(\"%H\")(d)\n const minute = d3.utcFormat(\"%M\")(d)\n\n return !(minute === \"00\" && Number.parseInt(hour) % n === 0)\n }\n}\n\nconst filterMinutesDivisibleBy = (n: number) => {\n return (d: Date) => {\n const minute = d3.utcFormat(\"%M\")(d)\n\n return Number.parseInt(minute) % n !== 0\n }\n}\n\nconst filterMinutesSecondsDivisibleBy = (n: number) => {\n return (d: Date) => {\n const minute = d3.utcFormat(\"%M\")(d)\n const second = d3.utcFormat(\"%S\")(d)\n\n return Number.parseInt(minute) % n !== 0 && Number.parseInt(second) === 0\n }\n}\n\n/**\n * Precision of the timeline ticks\n * (measured in Hours per Pixel)\n */\nconst Precision = {\n _10_seconds: 0.000025,\n _20_seconds: 0.0001,\n _30_seconds: 0.00015,\n _1_minute: 0.0003,\n _2_minutes: 0.00075,\n _5_minutes: 0.002,\n _15_minutes: 0.005,\n _30_minutes: 0.01,\n _1_hour: 0.025,\n _2_hours: 0.05,\n _3_hours: 0.1,\n _4_hours: 0.15,\n _6_hours: 0.25,\n _1_day: 1,\n _2_days: 2,\n _1_month: 8,\n _1_month_abbr: 13,\n _1_month_letter: 22,\n _3_months: 33,\n infinity: Infinity,\n}\n\n/**\n * Map of formats and ticks intervals for the Timeline axis(s) by type.\n */\nexport const defaultAxesConfig: TimelineAxesConfig = {\n [TimelineAxis.overview]: [\n {\n precision: Precision._30_seconds,\n interval: d3.utcMinute.every(2),\n format: getFormattedOverviewMinuteSecond,\n },\n {\n precision: Precision._1_minute,\n interval: d3.utcMinute.every(5),\n format: getFormattedOverviewMinuteSecond,\n },\n {\n precision: Precision._2_minutes,\n interval: d3.utcMinute.every(10),\n format: getFormattedOverviewHour,\n },\n {\n precision: Precision._5_minutes,\n interval: d3.utcMinute.every(20),\n format: getFormattedDayHourMinute,\n },\n {\n precision: Precision._15_minutes,\n interval: d3.utcHour,\n format: getFormattedDayHourMinute,\n },\n {\n precision: Precision._30_minutes,\n interval: d3.utcHour.every(2),\n format: getFormattedDayHourMinute,\n },\n {\n precision: Precision._2_hours,\n interval: d3.utcHour.every(6),\n format: (d: Date) => {\n const hour = getFormattedHourMinute(d)\n const day = getFormattedDay(d)\n const month = d3.utcFormat(\"%B\")(d)\n\n return hour || `${month} ${day}`\n },\n },\n {\n precision: Precision._3_hours,\n interval: d3.utcHour.every(12),\n format: getFormattedOverviewHour,\n },\n {\n precision: Precision._6_hours,\n interval: d3.utcHour.every(24),\n format: (d: Date) => {\n const day = getFormattedDay(d)\n const abbreviatedMonth = d3.utcFormat(\"%b\")(d)\n\n return `${abbreviatedMonth} ${day}`\n },\n },\n {\n precision: Precision._2_days,\n interval: d3.utcMonth,\n format: (d: Date) => {\n const startOfTheYear = d.getUTCMonth() === 0 && d.getUTCDate() === 1\n const format = startOfTheYear ? \"%Y – %B\" : \"%B\"\n\n return d3.utcFormat(format)(d)\n },\n },\n {\n precision: Precision.infinity,\n interval: d3.utcYear,\n format: \"%Y\",\n },\n ],\n [TimelineAxis.detailed]: [\n {\n precision: Precision._10_seconds,\n interval: d3.utcSecond.every(10),\n format: getFormattedMinuteSecond,\n },\n {\n precision: Precision._20_seconds,\n interval: d3.utcSecond\n .every(20)\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\n format: getFormattedMinuteSecond,\n },\n {\n precision: Precision._30_seconds,\n interval: d3.utcSecond\n .every(30)\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\n format: getFormattedMinuteSecond,\n },\n {\n precision: Precision._1_minute,\n interval: d3.utcMinute.filter(filterMinutesDivisibleBy(5)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._2_minutes,\n interval: d3.utcMinute.every(2)?.filter(filterMinutesDivisibleBy(10)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._5_minutes,\n interval: d3.utcMinute.every(5)?.filter(filterMinutesDivisibleBy(20)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._15_minutes,\n interval: d3.utcMinute.every(15)?.filter(filterHourDivisibleBy(1)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._30_minutes,\n interval: d3.utcMinute.every(30)?.filter(filterHourDivisibleBy(2)),\n format: getFormattedHourMinute,\n },\n {\n precision: Precision._1_hour,\n interval: d3.utcHour.filter(filterHourDivisibleBy(6)),\n format: getFormattedHour,\n },\n {\n precision: Precision._2_hours,\n interval: d3.utcHour.every(2)?.filter(filterHourDivisibleBy(6)),\n format: getFormattedHour,\n },\n {\n precision: Precision._3_hours,\n interval: d3.utcHour.every(3)?.filter(filterHourDivisibleBy(12)),\n format: getFormattedHour,\n },\n {\n precision: Precision._4_hours,\n interval: d3.utcHour.every(4),\n format: getFormattedHour,\n },\n {\n precision: Precision._6_hours,\n interval: d3.utcHour.every(6),\n format: getFormattedHour,\n },\n {\n precision: Precision._1_day,\n interval: d3.utcDay,\n format: getFormattedDayNoEndOfMonth,\n },\n {\n precision: Precision._2_days,\n interval: d3.utcDay.every(2),\n format: getFormattedDayNoEndOfMonth,\n },\n {\n precision: Precision._1_month,\n interval: d3.utcMonth,\n format: \"%B\",\n },\n {\n precision: Precision._1_month_abbr,\n interval: d3.utcMonth,\n format: \"%b\",\n },\n {\n precision: Precision._1_month_letter,\n interval: d3.utcMonth,\n format: (d: Date) => d3.utcFormat(\"%B\")(d).charAt(0),\n },\n {\n precision: Precision._3_months,\n interval: d3.utcMonth.every(3),\n format: \"Q%q\",\n },\n {\n precision: Precision.infinity,\n interval: d3.utcMonth.every(3),\n format: \"\",\n },\n ],\n [TimelineAxis.detailedBackground]: [\n {\n precision: Precision._10_seconds,\n interval: d3.utcSecond,\n format: \"\",\n },\n {\n precision: Precision._20_seconds,\n interval: d3.utcSecond.every(5),\n format: \"\",\n },\n {\n precision: Precision._30_seconds,\n interval: d3.utcSecond.every(10),\n format: \"\",\n },\n {\n precision: Precision._1_minute,\n interval: d3.utcSecond.every(20),\n format: \"\",\n },\n {\n precision: Precision._2_minutes,\n interval: d3.utcSecond.every(30),\n format: \"\",\n },\n {\n precision: Precision._5_minutes,\n interval: d3.utcMinute,\n format: \"\",\n },\n {\n precision: Precision._15_minutes,\n interval: d3.utcMinute.every(3),\n format: \"\",\n },\n {\n precision: Precision._30_minutes,\n interval: d3.utcMinute.every(6),\n format: \"\",\n },\n {\n precision: Precision._1_hour,\n interval: d3.utcMinute.every(15),\n format: \"\",\n },\n {\n precision: Precision._2_hours,\n interval: d3.utcMinute.every(30),\n format: \"\",\n },\n {\n precision: Precision._3_hours,\n interval: d3.utcHour,\n format: \"\",\n },\n {\n precision: Precision._4_hours,\n interval: d3.utcHour,\n format: \"\",\n },\n {\n precision: Precision._6_hours,\n interval: d3.utcMinute.every(120),\n format: \"\",\n },\n {\n precision: Precision._1_day,\n interval: d3.utcHour.every(8),\n format: \"\",\n },\n {\n precision: Precision._2_days,\n interval: d3.utcHour.every(12),\n format: \"\",\n },\n {\n precision: Precision._1_month,\n interval: d3.utcDay.filter((d: Date) => {\n const dayOfMonth = d.getUTCDate()\n const daysInMonth = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n 0\n ).getUTCDate()\n const fifthOfMonth = Math.ceil(daysInMonth / 5) // 1/4 of the month\n\n return (\n dayOfMonth === fifthOfMonth ||\n dayOfMonth === 2 * fifthOfMonth ||\n dayOfMonth === 3 * fifthOfMonth ||\n dayOfMonth === 4 * fifthOfMonth\n )\n }),\n format: \"\",\n },\n {\n precision: Precision._1_month_abbr,\n interval: d3.utcDay.filter((d: Date) => {\n const dayOfMonth = d.getUTCDate()\n const daysInMonth = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n 0\n ).getUTCDate()\n const quarterOfTheMonth = Math.ceil(daysInMonth / 4) // 1/4 of the month\n\n return (\n dayOfMonth === quarterOfTheMonth ||\n dayOfMonth === 2 * quarterOfTheMonth ||\n dayOfMonth === 3 * quarterOfTheMonth\n )\n }),\n format: \"\",\n },\n {\n precision: Precision._1_month_letter,\n interval: d3.utcDay.filter((d: Date) => {\n const dayOfMonth = d.getUTCDate()\n const daysInMonth = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n 0\n ).getUTCDate()\n const halfOfTheMonth = Math.ceil(daysInMonth / 2) // 1/4 of the month\n\n return dayOfMonth === halfOfTheMonth\n }),\n format: \"\",\n },\n {\n precision: Precision._3_months,\n interval: d3.utcMonth,\n format: \"\",\n },\n {\n precision: Precision.infinity,\n interval: d3.utcMonth,\n format: \"\",\n },\n ],\n}\n","import { DirectiveOptions } from \"vue\"\n\nexport interface ObservedElement extends HTMLElement {\n __resizeObserver__?: ResizeObserver\n}\n\nconst ResizeObserverDirective: DirectiveOptions = {\n bind(el, binding) {\n const { value: callback } = binding\n\n if (typeof callback !== \"function\") {\n console.error(\"Invalid callback function provided to v-resize-observer\")\n\n return\n }\n\n const observer: ResizeObserver = new ResizeObserver(\n (entries: ResizeObserverEntry[]) => {\n if (!entries[0]) {\n return\n }\n\n callback(entries[0])\n }\n )\n\n observer.observe(el)\n ;(el as ObservedElement).__resizeObserver__ = observer\n },\n unbind(el) {\n if ((el as ObservedElement).__resizeObserver__) {\n ;(el as ObservedElement).__resizeObserver__!.disconnect()\n delete (el as ObservedElement).__resizeObserver__\n }\n },\n}\n\nexport default ResizeObserverDirective\n","import ResizeObserverDirective from \"@/directives/resize-observer\"\n\nexport const DirectivesMap = [\n {\n name: \"resize-observer\",\n definition: ResizeObserverDirective,\n },\n]\n\nexport { ResizeObserverDirective }\n","\nimport * as d3 from \"d3\"\nimport Vue, { PropType } from \"vue\"\nimport { D3ZoomEvent, Axis, ZoomBehavior } from \"d3\"\nimport { defaultAxesConfig } from \"@/components/ETimeline.config\"\nimport {\n TimelineAxesConfig,\n TimelineAxis,\n TimelineTicksConfig,\n Timestamp,\n} from \"@/types\"\nimport { ResizeObserverDirective } from \"@/directives\"\nimport moment from \"moment-timezone\"\n\nexport type TimelineEvent =\n | {\n timestamp: string | Date\n [key: string]: any\n }\n | {\n startDate: string | Date\n endDate: string | Date\n [key: string]: any\n }\n\nexport type TimelineEventsGroup = {\n label: string\n color: string\n events: Array<TimelineEvent>\n}\n\nexport type TimelineEventsByType = {\n [eventsType: string]: TimelineEventsGroup\n}\n\nconst classes = {\n eventGroup: \"event-group\",\n eventGroupBg: \"event-group-bg\",\n labelBg: \"label-bg\",\n labelBgFill: \"label-bg-fill\",\n labelText: \"label-text\",\n xAxis: \"x-axis\",\n selectedTimestampCursor: \"selected-timestamp-cursor\",\n}\n\nexport default Vue.extend({\n name: \"ETimeline\",\n directives: {\n resizeObserver: ResizeObserverDirective,\n },\n props: {\n eventsGroups: {\n type: Object as PropType<TimelineEventsByType>,\n default: () => ({}),\n },\n xAxesConfig: {\n type: Object as PropType<TimelineAxesConfig>,\n default: () => defaultAxesConfig,\n },\n dark: {\n type: Boolean,\n default: false,\n },\n startDate: {\n type: String,\n default: undefined,\n },\n endDate: {\n type: String,\n default: undefined,\n },\n selectedTimestamp: {\n type: String,\n default: undefined,\n },\n showEventTooltip: {\n type: Boolean,\n default: true,\n },\n disableZoom: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n tooltip: null as unknown as HTMLElement,\n cursor: null as unknown as HTMLElement,\n timeline: null as unknown as HTMLElement,\n selectedTimestampCursor: null as unknown as HTMLElement,\n svg: null as unknown as d3.Selection<SVGSVGElement, any, any, any>,\n axesContainer: null as unknown as d3.Selection<\n SVGGElement,\n any,\n any,\n any\n >,\n xAxes: {} as unknown as Record<TimelineAxis, Axis<Date>>,\n timeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\n initialTimeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\n currentTimeScaleDensity: null as unknown as number,\n zoomBehavior: null as unknown as ZoomBehavior<SVGSVGElement, unknown>,\n isMouseDown: false,\n axisHeight: 22,\n eventGroupHeight: 18,\n eventGroupPadding: 0,\n isHoveringEvent: false,\n hoveredEvent: null as unknown as TimelineEvent,\n isHoveringTimeline: false,\n hoveredTimestamp: null as unknown as string,\n eventTooltipStyle: {},\n hoveredEventType: null as unknown as string,\n utcOffset: 0,\n }\n },\n computed: {\n classes() {\n return {\n wrapper: this.dark\n ? \"e-border-gray-700 e-timeline--dark\"\n : \"e-border-gray-300\",\n background: this.dark ? \"e-bg-gray-900\" : \"e-bg-gray-50\",\n tooltipSlot: this.dark\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\n eventTooltipSlot: this.dark\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\n }\n },\n labelRectWidth(): number {\n const eventsGroups = Object.values(\n this.eventsGroups\n ) as TimelineEventsGroup[]\n const maxLabelLength = eventsGroups.reduce((acc, eventsGroup) => {\n return Math.max(acc, eventsGroup.label?.length)\n }, 0)\n\n return maxLabelLength * 7.5 + 5\n },\n combinedXAxesHeight(): number {\n const axesCount = Object.keys(this.xAxesConfig).length - 1\n\n return this.axisHeight * axesCount\n },\n timelineHeight(): number {\n const eventsGroupsCount = Object.keys(this.eventsGroups).length\n const padding = this.eventGroupPadding * (eventsGroupsCount - 1)\n const eventsGouprsHeight = this.eventGroupHeight * eventsGroupsCount\n\n return this.combinedXAxesHeight + eventsGouprsHeight + padding\n },\n allEventsSorted(): TimelineEvent[] {\n const flattenedEvents = (\n Object.values(this.eventsGroups) as TimelineEventsGroup[]\n )\n .map((e: TimelineEventsGroup) => e.events)\n .flat()\n\n return flattenedEvents.sort((a, b) =>\n new Date(a.timestamp || a.startDate) >\n new Date(b.timestamp || b.startDate)\n ? 1\n : -1\n )\n },\n oldestEvent(): TimelineEvent {\n let oldestEvent\n if (this.allEventsSorted.length > 1) {\n oldestEvent = this.allEventsSorted[0]\n } else {\n const DAY = 86_400_000\n const yesterday = new Date(new Date().getTime() - DAY)\n\n oldestEvent = {\n timestamp: yesterday,\n }\n }\n\n return oldestEvent\n },\n latestEvent(): TimelineEvent {\n let latestEvent\n if (this.allEventsSorted.length > 1) {\n latestEvent = this.allEventsSorted[this.allEventsSorted.length - 1]\n } else {\n const defaultMaxDate = new Date()\n\n latestEvent = {\n timestamp: defaultMaxDate,\n }\n }\n\n return latestEvent\n },\n },\n watch: {\n dark() {\n this.onDarkModeChange()\n },\n selectedTimestamp() {\n this.repositionSelectedTimestampCursor()\n },\n startDate() {\n this.zoomToStartAndEndDates()\n },\n endDate() {\n this.zoomToStartAndEndDates()\n },\n },\n mounted() {\n this.initTimeline()\n },\n beforeDestroy() {\n document.removeEventListener(\"mouseup\", this.handleDocumentMouseUp)\n },\n methods: {\n tzStringToDate(timestamp: Timestamp): Date {\n return moment(timestamp).add(this.utcOffset, \"minutes\").toDate()\n },\n dateToTzString(date: Date): string {\n const userUtcOffset = new Date(date).getTimezoneOffset()\n\n return moment(date)\n .add(userUtcOffset, \"minutes\")\n .utcOffset(this.utcOffset, true)\n .format()\n },\n getFormattedTimestamp(timestamp: Timestamp): string {\n return moment.parseZone(timestamp).format(\"YYYY-MM-DDTHH:mm:ss\")\n },\n handleResize({ contentRect }: ResizeObserverEntry) {\n if (this.svg) {\n this.svg.attr(\"width\", contentRect.width)\n }\n },\n initTimeline() {\n this.initRefs()\n\n if (!this.timeline) {\n setTimeout(this.initTimeline, 500)\n\n return\n }\n\n this.initSvg()\n this.initUtcOffset()\n this.initTimeScale()\n this.initXAxes()\n this.initZoomBehavior()\n this.drawEventsGroups()\n this.initSelectedTimestampCursor()\n this.registerEventsListeners()\n },\n initRefs() {\n this.tooltip = this.$refs.tooltip as HTMLElement\n this.cursor = this.$refs.cursor as HTMLElement\n this.timeline = this.$refs.timelineContainer as HTMLElement\n this.selectedTimestampCursor = this.$refs.selectedTimestamp as HTMLElement\n },\n initSvg() {\n this.svg = d3\n .select(this.timeline)\n .append(\"svg\")\n .attr(\"width\", this.timeline.offsetWidth)\n .attr(\"height\", this.timelineHeight) as d3.Selection<\n SVGSVGElement,\n any,\n any,\n any\n >\n },\n initUtcOffset() {\n const sampleTimestamp =\n this.startDate ||\n this.oldestEvent.timestamp ||\n this.oldestEvent.startDate\n this.utcOffset = moment.parseZone(sampleTimestamp).utcOffset()\n },\n initTimeScale() {\n const startDate =\n this.startDate ||\n this.oldestEvent.timestamp ||\n this.oldestEvent.startDate\n const endDate =\n this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate\n\n this.timeScale = d3\n .scaleTime()\n .domain([this.tzStringToDate(startDate), this.tzStringToDate(endDate)])\n .range([0, this.timeline.offsetWidth])\n\n this.initialTimeScale = this.timeScale.copy()\n this.updateCurrentTimeScaleDensity()\n },\n initXAxes() {\n let i = 0\n const padding = 5\n for (const axisName in this.xAxesConfig) {\n const axis = this.createAxis(axisName as TimelineAxis)\n this.xAxes[axisName as TimelineAxis] = axis\n this.svg\n .append(\"g\")\n .classed(classes.xAxis, true)\n .classed(`${classes.xAxis}-${axisName}`, true)\n .attr(\"transform\", `translate(0, ${i || padding})`)\n .call(axis)\n\n this.translateTicksText(axisName)\n i += this.axisHeight\n }\n },\n createAxis(axisName: TimelineAxis) {\n const axis = this.xAxesConfig[axisName as TimelineAxis]\n const config = this.getAxisTicksConfig(axis)\n\n return d3\n .axisBottom<Date>(this.timeScale)\n .ticks(config.interval)\n .tickFormat((d) => config.formatFn(d))\n .tickSizeOuter(0)\n .tickSizeInner(this.timelineHeight)\n },\n getAxisTicksConfig(configs: TimelineTicksConfig[]) {\n const { interval, format } = configs.find(\n (config) =>\n config.precision >= this.currentTimeScaleDensity && config.interval\n ) as TimelineTicksConfig\n\n const formatFn = (d: Date): string => {\n return typeof format === \"function\"\n ? format(d)\n : d3.timeFormat(format)(d)\n }\n\n return {\n formatFn,\n interval,\n }\n },\n initZoomBehavior() {\n if (this.disableZoom) {\n return\n }\n\n this.zoomBehavior = d3\n .zoom<SVGSVGElement, unknown>()\n .on(\"zoom\", this.handleZoom)\n .scaleExtent([0.25, 750_000])\n\n this.svg.call(this.zoomBehavior)\n },\n initSelectedTimestampCursor() {\n this.svg\n .append(\"line\")\n .attr(\"class\", classes.selectedTimestampCursor)\n .style(\"stroke\", \"red\")\n .style(\"stroke-width\", \"1px\")\n .style(\"opacity\", 0)\n .attr(\"x1\", 0)\n .attr(\"x2\", 0)\n .attr(\"y1\", 0)\n .attr(\"y2\", this.timelineHeight)\n this.repositionSelectedTimestampCursor()\n },\n repositionSelectedTimestampCursor() {\n const cursor = this.svg.select(`.${classes.selectedTimestampCursor}`)\n if (!this.selectedTimestamp) {\n cursor.style(\"opacity\", 0)\n\n return\n }\n const timestamp = this.tzStringToDate(this.selectedTimestamp)\n const cursorX = this.timeScale(timestamp)\n if (!isNaN(cursorX)) {\n cursor.attr(\"x1\", cursorX).attr(\"x2\", cursorX).style(\"opacity\", 0.5)\n } else {\n cursor.style(\"opacity\", 0)\n }\n },\n updateCurrentTimeScaleDensity() {\n const timeAtPixel0 = this.timeScale.invert(0).getTime()\n const timeAtPixel1 = this.timeScale.invert(1).getTime()\n const HOUR = 3_600_000\n\n this.currentTimeScaleDensity = (timeAtPixel1 - timeAtPixel0) / HOUR\n },\n registerEventsListeners() {\n document.addEventListener(\"mouseup\", this.handleDocumentMouseUp)\n this.svg.on(\"mousedown\", this.handleMouseDown)\n this.svg.on(\"mousemove\", this.handleMouseMove)\n this.svg.on(\"click\", this.handleClick)\n this.svg.on(\"mouseleave\", this.handleMouseLeave)\n },\n handleMouseDown() {\n this.isMouseDown = true\n },\n handleDocumentMouseUp() {\n this.isMouseDown = false\n },\n handleMouseLeave() {\n this.isHoveringTimeline = false\n },\n handleMouseMove(event: MouseEvent) {\n if (this.isMouseDown) {\n return\n }\n const mouseX = event.offsetX\n const date = this.timeScale.invert(mouseX)\n this.hoveredTimestamp = this.dateToTzString(date)\n this.isHoveringTimeline = true\n this.cursor.style.left = mouseX + \"px\"\n\n if (!this.tooltip) {\n return\n }\n\n this.eventTooltipStyle = {\n left: `${mouseX}px`,\n bottom: `${this.timeline.getBoundingClientRect().height}px`,\n }\n this.repositionSelectedTimestampCursor()\n },\n handleClick(event: MouseEvent) {\n const mouseX = event.offsetX\n const date = this.timeScale.invert(mouseX)\n const formattedDateTz = this.dateToTzString(date)\n\n this.$emit(\"date-clicked\", formattedDateTz)\n },\n handleEventMouseOver(\n _event: MouseEvent,\n eventData: TimelineEvent,\n eventType: string\n ) {\n this.hoveredEvent = eventData\n this.hoveredEventType = eventType\n this.isHoveringEvent = true\n this.$emit(\"event-mouseover\", { eventData, eventType })\n },\n handleEventMouseOut() {\n this.isHoveringEvent = false\n this.hoveredEvent = null as unknown as TimelineEvent\n this.$emit(\"event-mouseout\")\n },\n handleZoom(event: D3ZoomEvent<SVGSVGElement, any>) {\n const newScale = event.transform.rescaleX(this.initialTimeScale)\n this.timeScale.domain(newScale.domain())\n this.updateCurrentTimeScaleDensity()\n\n for (const axisName in this.xAxes) {\n this.rescaleAxis(axisName, newScale)\n this.translateTicksText(axisName)\n }\n this.updateEventsRects()\n this.repositionSelectedTimestampCursor()\n },\n zoomToStartAndEndDates() {\n const startDate =\n this.startDate ||\n this.oldestEvent.timestamp ||\n this.oldestEvent.startDate\n const endDate =\n this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate\n\n const startTime = this.tzStringToDate(startDate)\n const endTime = this.tzStringToDate(endDate)\n const timelineWidth = this.timeline.offsetWidth\n const newDomain = [startTime, endTime]\n const newRange = [0, timelineWidth]\n\n this.timeScale = d3.scaleTime().domain(newDomain).range(newRange)\n this.initialTimeScale = this.timeScale.copy()\n\n this.updateCurrentTimeScaleDensity()\n for (const axisName in this.xAxes) {\n this.rescaleAxis(axisName, this.timeScale)\n this.translateTicksText(axisName)\n }\n this.updateEventsRects()\n this.repositionSelectedTimestampCursor()\n },\n rescaleAxis(axisName: string, newScale: d3.ScaleTime<any, any, unknown>) {\n const axis: Axis<Date> = this.xAxes[axisName as TimelineAxis]\n const ticksConfig = this.getAxisTicksConfig(\n this.xAxesConfig[axisName as TimelineAxis]\n )\n axis\n .scale(newScale)\n .ticks(ticksConfig.interval)\n .tickFormat((d) => ticksConfig.formatFn(d))\n .tickSizeOuter(0)\n this.svg.select<SVGGElement>(`.${classes.xAxis}-${axisName}`).call(axis)\n },\n translateTicksText(axisName: string) {\n this.svg\n .select<SVGGElement>(`.${classes.xAxis}-${axisName}`)\n .selectAll(\".tick text\")\n .each(function () {\n let textElement = d3.select(this as SVGTextElement)\n let textBBox = (textElement.node() as SVGGraphicsElement).getBBox()\n textElement\n .attr(\"x\", textBBox.height / 2)\n .attr(\"y\", 0)\n .style(\"text-anchor\", \"start\")\n })\n },\n updateEventsRects() {\n const rectsSelector = `.${classes.eventGroup} > rect:not(.${classes.labelBg}):not(.${classes.labelBgFill}):not(.${classes.eventGroupBg})`\n this.svg\n .selectAll<SVGRectElement, TimelineEvent>(rectsSelector)\n .attr(\"x\", this.getEventRectX)\n .attr(\"width\", this.getEventRectWidth)\n .attr(\"height\", this.eventGroupHeight)\n },\n getEventRectX(d: TimelineEvent) {\n return this.timeScale(this.tzStringToDate(d.startDate || d.timestamp))\n },\n getEventRectWidth(d: TimelineEvent) {\n if (!d) {\n return 0\n }\n if (d.startDate && d.endDate) {\n const startTimestamp = new Date(d.startDate)\n const endTimestamp = new Date(d.endDate)\n const width =\n this.timeScale(endTimestamp) - this.timeScale(startTimestamp)\n\n return Math.max(width, 1)\n } else {\n const oneSecondWidth = 1 / (this.currentTimeScaleDensity * 3600)\n\n return Math.max(oneSecondWidth, 1)\n }\n },\n drawEventsGroups() {\n this.svg.selectAll(`g.${classes.eventGroup}`).remove()\n Object.entries(this.eventsGroups).forEach(\n ([type, eventsGroup], index) => {\n const { color, label, events } = eventsGroup as TimelineEventsGroup\n const padding = index === 0 ? 0 : this.eventGroupPadding\n const yPosition =\n index * (this.eventGroupHeight + padding) + this.combinedXAxesHeight\n const gElement = this.svg\n .append(\"g\")\n .attr(\"data-color\", color)\n .classed(classes.eventGroup, true)\n .classed(`${classes.eventGroup}-${type}`, true)\n\n this.drawBackground({\n color,\n gElement,\n yPosition,\n })\n\n this.drawEvents({\n events,\n color,\n gElement,\n yPosition,\n type,\n })\n\n this.drawTextLabel({\n color,\n label,\n gElement,\n yPosition,\n })\n }\n )\n },\n drawBackground({\n color,\n yPosition,\n gElement,\n }: {\n gElement: d3.Selection<SVGGElement, any, any, any>\n yPosition: number\n color: string\n }) {\n gElement\n .append(\"rect\")\n .attr(\"class\", classes.eventGroupBg)\n .attr(\"x\", 0)\n .attr(\"y\", yPosition)\n .attr(\"width\", this.timeline.offsetWidth)\n .attr(\"height\", this.eventGroupHeight)\n .attr(\"fill\", d3.color(color)!.toString())\n .style(\"opacity\", 0.1)\n },\n drawEvents({\n events,\n gElement,\n yPosition,\n color,\n type,\n }: {\n events: TimelineEvent[]\n gElement: d3.Selection<SVGGElement, any, any, any>\n yPosition: number\n color: string\n type: string\n }) {\n gElement\n .selectAll(\"rect\")\n .data(events)\n .enter()\n .append(\"rect\")\n .attr(\"x\", this.getEventRectX)\n .attr(\"y\", yPosition)\n .attr(\"ry\", 1.5)\n .attr(\"rx\", 1.5)\n .attr(\"width\", this.getEventRectWidth)\n .attr(\"height\", this.eventGroupHeight)\n .attr(\"stroke-width\", 5)\n .attr(\"cursor\", \"pointer\")\n .attr(\"stroke\", \"#0000\")\n .style(\"fill\", color)\n .on(\"mouseover\", (event, eventData) =>\n this.handleEventMouseOver(event, eventData, type)\n )\n .on(\"mouseout\", () => this.handleEventMouseOut())\n },\n drawTextLabel({\n gElement,\n yPosition,\n color,\n label,\n }: {\n gElement: d3.Selection<SVGGElement, any, any, any>\n yPosition: number\n color: string\n label: string\n }) {\n const bg = {\n x: -5,\n y: yPosition,\n w: this.labelRectWidth + 5,\n h: this.eventGroupHeight,\n radius: 3,\n }\n\n // Label rect background\n gElement\n .append(\"rect\")\n .attr(\"class\", classes.labelBg)\n .attr(\"x\", bg.x)\n .attr(\"y\", bg.y)\n .attr(\"width\", bg.w)\n .attr(\"height\", bg.h)\n .attr(\"rx\", bg.radius)\n .attr(\"ry\", bg.radius)\n .style(\"fill\", this.dark ? \"#131a29\" : \"white\")\n\n // Label rect fill\n gElement\n .append(\"rect\")\n .attr(\"class\", classes.labelBgFill)\n .attr(\"x\", bg.x)\n .attr(\"y\", bg.y)\n .attr(\"width\", bg.w)\n .attr(\"height\", bg.h)\n .attr(\"rx\", bg.radius)\n .attr(\"ry\", bg.radius)\n .style(\"fill\", this.getLabelBackgroundColor(color))\n .style(\"stroke\", this.getTextFillColor(color))\n .style(\"stroke-width\", 0.25)\n\n // Label text\n gElement\n .append(\"text\")\n .attr(\"class\", classes.labelText)\n .attr(\"x\", 5)\n .attr(\"y\", yPosition + this.eventGroupHeight / 2)\n .attr(\"dy\", \"0.35em\")\n .style(\"text-anchor\", \"start\")\n .style(\"font-size\", \"12px\")\n .style(\"font-weight\", 500)\n .style(\"stroke-linejoin\", \"round\")\n .style(\"paint-order\", \"stroke\")\n .style(\"fill\", this.getTextFillColor(color))\n .text(label)\n },\n getTextFillColor(baseColor: string) {\n return (\n this.dark\n ? d3.color(baseColor)?.brighter(1.5)\n : d3.color(baseColor)?.darker(2)\n )!.toString()\n },\n getLabelBackgroundColor(baseColor: string) {\n let color = d3.color(baseColor)\n color!.opacity = this.dark ? 0.2 : 0.5\n\n return color!.toString()\n },\n onDarkModeChange() {\n Object.entries(this.eventsGroups).forEach(([type, _eventsGroup]) => {\n const gElement = this.svg.select(`.${classes.eventGroup}-${type}`)\n\n const color = (gElement.node()! as HTMLElement).dataset.color\n gElement\n .select(`.${classes.labelBg}`)\n .style(\"fill\", this.dark ? \"black\" : \"white\")\n gElement\n .select(`.${classes.labelBgFill}`)\n .style(\"fill\", this.getLabelBackgroundColor(color as string))\n .style(\"stroke\", this.getTextFillColor(color as string))\n .style(\"stroke-width\", 0.25)\n gElement\n .select(`.${classes.labelText}`)\n .style(\"fill\", this.getTextFillColor(color as string))\n })\n },\n },\n})\n","// Components\nimport EAvatar from \"@/components/EAvatar.vue\"\nimport EBadge from \"@/components/EBadge.vue\"\nimport EIcon from \"@/components/EIcon.vue\"\nimport ESpinner from \"@/components/ESpinner.vue\"\nimport ERow from \"@/components/ERow.vue\"\nimport ECol from \"@/components/ECol.vue\"\nimport EVideoPlayer from \"@/components/EVideoPlayer.vue\"\nimport ETimeline from \"@/components/ETimeline.vue\"\n\n// Directives\nimport { DirectivesMap } from \"@/directives\"\n\nimport { VueConstructor } from \"vue\"\n\nexport const components = {\n EAvatar,\n EBadge,\n EIcon,\n ESpinner,\n ERow,\n ECol,\n EVideoPlayer,\n ETimeline,\n}\n\nexport default {\n install(Vue: VueConstructor) {\n // Register components\n Object.keys(components).forEach((name) => {\n // @ts-ignore\n Vue.component(name, components[name])\n })\n\n // Register directives\n DirectivesMap.forEach(({ name, definition }) => {\n Vue.directive(name, definition)\n })\n },\n}\n\nexport { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline }\n\nexport * from \"@/constants\"\n\nexport * from \"@/types\"\n\nexport * from \"@/utils\"\n\nexport * from \"@/directives\"\n"],"names":["Size","BaseColor","TimelineAxis","_sfc_main$7","Vue","colorClasses","sizeClasses","_sfc_main$6","Badge","exports","negateValue","value","sign","numericFunctions","fn","_default","pluginConfig","plugins","pluginName","x","create","picocolors_browserModule","_export","target","all","name","dim","_picocolors","_interop_require_default","require$$0","obj","alreadyShown","log","type","messages","key","message","input","_log","warn","version","from","to","defaults","sources","source","k","_target_hasOwnProperty","_target_hasOwnProperty1","toPath","path","openBrackets","closedBrackets","flagEnabled","issueFlagNotices","require$$1","featureFlags","config","flag","_config_future","_config_future_flag","_ref","_config_experimental","_config_experimental_flag","_ref1","experimentalFlagsEnabled","changes","s","normalizeConfig","_featureFlags","_interop_require_wildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","_purge_options","content","purge","safelist","blocklist","item","_config_prefix","extract","_config_purge","_config_content","_config_purge1","_config_purge_extract","_config_content1","_config_content_extract","_config_purge2","_config_purge_options","_config_content2","_config_content_options","extractors","defaultExtractor","extensions","extractor","extension","transform","_config_purge_transform","_config_content_transform","transformers","file","isPlainObject","prototype","cloneDeep","child","v","escapeCommas","className","parseColor","formatColor","_colorNames","HEX","SHORT_HEX","VALUE","SEP","ALPHA_SEP","CUSTOM_PROPERTY","RGB","HSL","loose","_match_","_match__toString","hex","_","r","g","b","a","_value_match","match","color","part","mode","alpha","hasAlpha","withAlphaValue","withAlphaVariable","_color","alphaValue","defaultValue","parsed","property","variable","properties","splitAtTopLevelOnly","separator","stack","parts","lastPos","isEscaped","idx","char","parseBoxShadowValue","formatBoxShadowValue","_splitAtTopLevelOnly","KEYWORDS","SPACE","LENGTH","shadow","result","seen","shadows","normalize","url","number","percentage","length","lineWidth","image","gradient","position","familyName","genericName","absoluteSize","relativeSize","_parseBoxShadowValue","require$$2","cssFunctions","isCSSFunction","placeholder","placeholderRe","isRoot","fullMatch","characterBefore","normalizeMathOperatorSpacing","vars","g1","lengthUnitsPattern","lineWidths","parsedShadows","parsedShadow","colors","images","gradientTypes","validPositions","positions","fonts","genericNames","absoluteSizes","relativeSizes","backgroundSize","_dataTypes","keywordValues","sizes","size","updateAllClasses","asValue","parseColorFormat","asColor","asLookupValue","typeMap","coerceValue","getMatchingTypes","_escapeCommas","_withAlphaVariable","_negateValue","require$$3","_validateFormalSyntax","require$$4","require$$5","selectors","updateClass","sel","resolveArbitraryValue","modifier","validate","isArbitraryValue","asNegativeValue","lookup","positiveValue","resolved","options","_options_values","splitUtilityModifier","slashIdx","oldValue","opacityValue","unwrapArbitraryModifier","tailwindConfig","_options_values1","_options_values2","_tailwindConfig_theme","_tailwindConfig_theme_opacity","_options_values_color","normalizedColor","guess","supportedTypes","splitAtFirst","delim","types","arbitraryValue","explicitType","matches","rawModifier","modifiersEnabled","utilityModifier","_options_modifiers","_options_modifiers_utilityModifier","configValue","toColorValue","maybeFunction","resolveConfig","_corePluginList","_configurePlugins","_colors","_defaults","_toPath","_normalizeConfig","require$$6","_isPlainObject","require$$7","_cloneDeep","require$$8","_pluginUtils","require$$9","require$$10","_toColorValue","require$$11","isFunction","mergeWith","customizer","merged","configUtils","scale","negativeScale","negativeValue","screens","breakpoints","valueToResolve","args","collectExtends","items","extend","mergedValue","extendValue","mergeThemes","themes","theme","mergeExtensionCustomizer","mergeExtensions","themeValue","resolveThemePath","utils","e","toPaths","pattern","prefix","newPath","resolveFunctionKeys","object","resolvePath","index","val","normalized","extractPluginConfigs","configs","allConfigs","_config_plugins","plugin","_plugin_config","resolveCorePlugins","corePluginConfigs","corePluginConfig","resolvePluginLists","pluginLists","pluginList","_t_theme","_c_plugins","t","c","config_full","getAllConfigs","_configfull","_config_presets","preset","features","experimentals","feature","_resolveConfig","_getAllConfigs","defaultConfigs","resolveConfig_1","colors_1","BrandColors","customColors","TailwindColors.white","TailwindColors.amber","TailwindColors.rose","TailwindColors.cyan","TailwindColors.lime","TailwindColors.sky","CustomColors","TailwindColors.slate","fullConfig","TextSizes","Colors","BadgeSizes","AvatarSizes","IconSizes","BadgeColors","EVENTS","_sfc_main$5","acc","iconClasses","_b","_a","_sfc_main$4","fill","animationDuration","_sfc_main$3","_sfc_main$2","prop","acceptUndefined","n","isFullScreen","makeFullScreen","element","resolve","exitFullScreen","leadingZeroFormatter","VIDEO_PLAYER_EVENTS","formatDuration","time","seconds","minutes","hours","_sfc_main$1","ESpinner","videoOptions","event","which","player","timelineContainer","playerRef","state","currentTime","percent","rect","duration","videoContainer","playPromise","tagName","getFormattedDay","d","day","d3","daySuffix","getFormattedDayNoEndOfMonth","getFormattedHour","getFormattedHourMinute","HH_MM","getFormattedMinuteSecond","getFormattedOverviewMinuteSecond","getFormattedOverviewHour","hour","month","getFormattedDayHourMinute","filterHourDivisibleBy","filterMinutesDivisibleBy","minute","filterMinutesSecondsDivisibleBy","second","Precision","defaultAxesConfig","format","dayOfMonth","daysInMonth","fifthOfMonth","quarterOfTheMonth","halfOfTheMonth","ResizeObserverDirective","el","binding","callback","observer","entries","DirectivesMap","classes","_sfc_main","eventsGroup","axesCount","eventsGroupsCount","padding","eventsGouprsHeight","oldestEvent","latestEvent","timestamp","moment","date","userUtcOffset","contentRect","sampleTimestamp","startDate","endDate","i","axisName","axis","interval","cursor","cursorX","timeAtPixel0","timeAtPixel1","HOUR","mouseX","formattedDateTz","_event","eventData","eventType","newScale","startTime","endTime","timelineWidth","newDomain","newRange","ticksConfig","textElement","textBBox","rectsSelector","startTimestamp","endTimestamp","width","oneSecondWidth","label","events","yPosition","gElement","bg","baseColor","_eventsGroup","components","EAvatar","EBadge","EIcon","ERow","ECol","EVideoPlayer","ETimeline","definition"],"mappings":"4pBAEY,IAAAA,GAAAA,IACVA,EAAA,IAAM,MACNA,EAAA,GAAK,KACLA,EAAA,GAAK,KACLA,EAAA,GAAK,OACLA,EAAA,KAAO,OACPA,EAAA,GAAK,KACLA,EAAA,GAAK,KACLA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MACRA,EAAA,KAAQ,EAAA,MAfEA,IAAAA,GAAA,CAAA,CAAA,EAkBAC,GAAAA,IACVA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,QAAU,UAPAA,IAAAA,GAAA,CAAA,CAAA,EAmDAC,GAAAA,IACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,mBAAqB,qBAHXA,IAAAA,GAAA,CAAA,CAAA,ECnEG,MAAAC,GAAAC,EAAI,OAAO,CACxB,KAAM,SACN,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAASH,EAAU,OACrB,EACA,KAAM,CACJ,KAAM,OACN,QAASD,EAAK,IAChB,CACF,EACA,MAAO,CACE,MAAA,CACL,OAAQ,CACN,CAACC,EAAU,KAAK,EAAG,6BACnB,CAACA,EAAU,IAAI,EAAG,6BAClB,CAACA,EAAU,OAAO,EAAG,8BACrB,CAACA,EAAU,OAAO,EAAG,4BACrB,CAACA,EAAU,OAAO,EAAG,8BACrB,CAACA,EAAU,OAAO,EAAG,4BACvB,EACA,MAAO,CACL,CAACD,EAAK,GAAG,EAAG,cACZ,CAACA,EAAK,EAAE,EAAG,cACX,CAACA,EAAK,EAAE,EAAG,cACX,CAACA,EAAK,EAAE,EAAG,cACX,CAACA,EAAK,EAAE,EACN,qEACF,CAACA,EAAK,EAAE,EACN,sEACJ,CAAA,CAEJ,EACA,SAAU,CACR,cAAyB,CACjB,MAAAK,EACJ,KAAK,OAAO,KAAK,KAAK,GAAK,KAAK,OAAOJ,EAAU,OAAO,EACpDK,EAAc,KAAK,MAAM,KAAK,IAAI,GAAK,KAAK,MAAMN,EAAK,EAAE,EAExD,MAAA,CACL,wDACAK,EACAC,CAAA,CAEJ,EACA,UAAoB,CACX,MAAA,CAACN,EAAK,GAAIA,EAAK,EAAE,EAAE,SAAS,KAAK,IAAI,CAC9C,CACF,CACF,CAAC,y8BCrDcO,GAAAH,EAAI,OAAO,CACxB,KAAM,UACN,WAAY,CAAA,MACVI,EACF,EACA,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAASR,EAAK,EAChB,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,WAAY,CACV,KAAM,OACN,QAASC,EAAU,KACrB,EACA,UAAW,CACT,KAAM,OACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,OACN,QAASD,EAAK,EAChB,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,CACF,EACA,MAAO,CACE,MAAA,CACL,MAAO,CACL,CAACA,EAAK,EAAE,EAAG,wBACX,CAACA,EAAK,EAAE,EAAG,0BACX,CAACA,EAAK,EAAE,EAAG,4BACX,CAACA,EAAK,EAAE,EAAG,2BACX,CAACA,EAAK,EAAE,EAAG,2BACX,CAACA,EAAK,KAAK,CAAC,EAAG,0BACjB,CAAA,CAEJ,EACA,SAAU,CACR,eAA0B,CAGjB,MAAA,CACL,mGAHkB,KAAK,MAAM,KAAK,IAAI,GAAK,KAAK,MAAMA,EAAK,EAAE,CAI7D,CAEJ,CACF,CACF,CAAC,4qBCzDD,OAAO,eAAwBS,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOC,CACV,CACL,CAAC,EACD,SAASA,EAAYC,EAAO,CAExB,GADAA,EAAQ,GAAGA,CAAK,GACZA,IAAU,IACV,MAAO,IAGX,GAAI,4CAA4C,KAAKA,CAAK,EACtD,OAAOA,EAAM,QAAQ,SAAWC,GAAOA,IAAS,IAAM,GAAK,GAAG,EAMlE,IAAIC,EAAmB,CACnB,MACA,OACA,MACA,MACA,OACR,EACI,UAAWC,KAAMD,EACb,GAAIF,EAAM,SAAS,GAAGG,CAAE,GAAG,EACvB,MAAO,QAAQH,CAAK,QAGhC,+BClCA,OAAO,eAAwBF,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,YACA,YACA,gBACA,gBACA,aACA,WACA,QACA,YACA,SACA,QACA,aACA,kBACA,gBACA,UACA,eACA,aACA,QACA,QACA,SACA,YACA,YACA,UACA,cACA,SACA,YACA,YACA,QACA,WACA,WACA,OACA,aACA,WACA,YACA,cACA,cACA,iBACA,gBACA,kBACA,YACA,SACA,OACA,QACA,YACA,YACA,SACA,cACA,aACA,SACA,iBACA,kBACA,iBACA,eACA,gBACA,oBACA,gBACA,iBACA,aACA,UACA,cACA,cACA,aACA,kBACA,eACA,eACA,sBACA,mBACA,gBACA,WACA,eACA,aACA,eACA,aACA,iBACA,eACA,MACA,QACA,cACA,cACA,cACA,gBACA,YACA,YACA,cACA,WACA,qBACA,iBACA,eACA,UACA,aACA,YACA,eACA,cACA,cACA,cACA,gBACA,kBACA,oBACA,kBACA,qBACA,qBACA,iBACA,uBACA,iBACA,qBACA,mBACA,mBACA,OACA,SACA,cACA,YACA,iBACA,UACA,YACA,aACA,gBACA,aACA,WACA,aACA,gBACA,YACA,qBACA,aACA,gBACA,YACA,cACA,iBACA,sBACA,sBACA,0BACA,sBACA,gBACA,mBACA,qBACA,aACA,cACA,UACA,sBACA,eACA,YACA,iBACA,eACA,eACA,gBACA,eACA,YACA,YACA,cACA,kBACA,kBACA,OACA,aACA,WACA,aACA,YACA,YACA,SACA,WACA,QACA,SACA,eACA,qBACA,mBACA,oBACA,oBACA,iBACA,kBACA,mBACA,gBACA,iBACA,qBACA,kBACA,qBACA,2BACA,aACA,wCCxLJ,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EA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CL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,IAAK,CACD,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UA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,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOuG,CACV,CACL,CAAC,EACD,SAASA,EAAaC,EAAW,CAC7B,OAAOA,EAAU,QAAQ,OAAQ,OAAO,CAC5C,2CCXA,OAAO,eAAwBxG,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,UAAW,CACP,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,EACA,CACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,MAAO,CACH,IACA,GACA,EACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,EACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,GACA,EACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,SAAU,CACN,EACA,EACA,GACH,EACD,SAAU,CACN,EACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,EACA,IACA,CACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,EACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,EACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,QAAS,CACL,IACA,EACA,CACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,GACA,GACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,EACA,GACH,EACD,SAAU,CACN,IACA,GACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,WAAY,CACR,GACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,YAAa,CACT,GACA,IACA,EACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,OAAQ,CACJ,GACA,EACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,CACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,qBAAsB,CAClB,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,CACH,EACD,UAAW,CACP,GACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,CACH,EACD,iBAAkB,CACd,IACA,IACA,GACH,EACD,WAAY,CACR,EACA,EACA,GACH,EACD,aAAc,CACV,IACA,GACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,IACA,GACH,EACD,kBAAmB,CACf,EACA,IACA,GACH,EACD,gBAAiB,CACb,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,GACA,GACH,EACD,aAAc,CACV,GACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,GACA,CACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,GACH,EACD,cAAe,CACX,IACA,GACA,GACH,EACD,IAAK,CACD,IACA,EACA,CACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,YAAa,CACT,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,EACH,EACD,SAAU,CACN,GACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,IAAK,CACD,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,qBC7uBL,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQC,EAAQC,EAAK,CAC1B,QAAQC,KAAQD,EAAI,OAAO,eAAeD,EAAQE,EAAM,CACpD,WAAY,GACZ,IAAKD,EAAIC,CAAI,CACrB,CAAK,CACJ,CACDH,EAAQb,EAAS,CACb,WAAY,UAAW,CACnB,OAAOyG,CACV,EACD,YAAa,UAAW,CACpB,OAAOC,CACV,CACL,CAAC,EACD,MAAMC,EAA4BxF,EAAyBC,EAAuB,EAClF,SAASD,EAAyBE,EAAK,CACnC,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CACjC,QAASA,CACjB,CACC,CACD,IAAIuF,EAAM,wDACNC,EAAY,4CACZC,EAAQ,qBACRC,EAAM,kBACNC,EAAY,aACZC,EAAkB,uBAClBC,EAAM,IAAI,OAAO,mBAAmBJ,EAAM,MAAM,IAAIG,EAAgB,MAAM,OAAOF,EAAI,MAAM,IAAID,EAAM,MAAM,IAAIG,EAAgB,MAAM,SAASF,EAAI,MAAM,IAAID,EAAM,MAAM,IAAIG,EAAgB,MAAM,SAASD,EAAU,MAAM,IAAIF,EAAM,MAAM,IAAIG,EAAgB,MAAM,aAAa,EAClRE,EAAM,IAAI,OAAO,sBAAsBL,EAAM,MAAM,2BAA2BG,EAAgB,MAAM,OAAOF,EAAI,MAAM,IAAID,EAAM,MAAM,IAAIG,EAAgB,MAAM,SAASF,EAAI,MAAM,IAAID,EAAM,MAAM,IAAIG,EAAgB,MAAM,SAASD,EAAU,MAAM,IAAIF,EAAM,MAAM,IAAIG,EAAgB,MAAM,aAAa,EAChT,SAASR,EAAWvG,EAAO,CAAE,MAAAkH,EAAO,EAAK,EAAM,CAAA,EAAI,CAC/C,IAAIC,EAASC,EACb,GAAI,OAAOpH,GAAU,SACjB,OAAO,KAGX,GADAA,EAAQA,EAAM,OACVA,IAAU,cACV,MAAO,CACH,KAAM,MACN,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,GACnB,EAEI,GAAIA,KAASyG,EAAY,QACrB,MAAO,CACH,KAAM,MACN,MAAOA,EAAY,QAAQzG,CAAK,EAAE,IAAKoG,GAAIA,EAAE,UAAU,CACnE,EAEI,IAAIiB,EAAMrH,EAAM,QAAQ2G,EAAW,CAACW,EAAGC,EAAGC,EAAGC,EAAGC,IAAI,CAC5C,IACAH,EACAA,EACAC,EACAA,EACAC,EACAA,EACAC,EAAIA,EAAIA,EAAI,EACf,EAAC,KAAK,EAAE,CAAC,EAAE,MAAMhB,CAAG,EACzB,GAAIW,IAAQ,KACR,MAAO,CACH,KAAM,MACN,MAAO,CACH,SAASA,EAAI,CAAC,EAAG,EAAE,EACnB,SAASA,EAAI,CAAC,EAAG,EAAE,EACnB,SAASA,EAAI,CAAC,EAAG,EAAE,CACtB,EAAC,IAAKjB,GAAIA,EAAE,SAAQ,CAAE,EACvB,MAAOiB,EAAI,CAAC,GAAK,SAASA,EAAI,CAAC,EAAG,EAAE,EAAI,KAAK,SAAU,EAAG,MACtE,EAEI,IAAIM,EACJ,IAAIC,GAASD,EAAe3H,EAAM,MAAMgH,CAAG,KAAO,MAAQW,IAAiB,OAASA,EAAe3H,EAAM,MAAMiH,CAAG,EAClH,GAAIW,IAAU,KACV,OAAO,KAEX,IAAIC,EAAQ,CACRD,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,CACf,EAAM,OAAO,OAAO,EAAE,IAAKxB,GAAIA,EAAE,SAAQ,CAAE,EAGvC,OAAIyB,EAAM,SAAW,GAAKA,EAAM,CAAC,EAAE,WAAW,MAAM,EACzC,CACH,KAAMD,EAAM,CAAC,EACb,MAAO,CACHC,EAAM,CAAC,CACV,EACD,MAAOA,EAAM,CAAC,CAC1B,EAEQ,CAACX,GAASW,EAAM,SAAW,GAG3BA,EAAM,OAAS,GAAK,CAACA,EAAM,KAAMC,GAAO,eAAe,KAAKA,CAAI,CAAC,EAC1D,KAEJ,CACH,KAAMF,EAAM,CAAC,EACb,MAAAC,EACA,OAAQV,EAAUS,EAAM,CAAC,KAAO,MAAQT,IAAY,SAAmBC,EAAmBD,EAAQ,YAAc,MAAQC,IAAqB,OAAhF,OAAkGA,EAAiB,KAAKD,CAAO,CACpM,CACC,CACD,SAASX,EAAY,CAAE,KAAAuB,EAAO,MAAAF,EAAQ,MAAAG,CAAK,EAAK,CAC5C,IAAIC,EAAWD,IAAU,OACzB,OAAID,IAAS,QAAUA,IAAS,OACrB,GAAGA,CAAI,IAAIF,EAAM,KAAK,IAAI,CAAC,GAAGI,EAAW,KAAKD,CAAK,GAAK,EAAE,IAE9D,GAAGD,CAAI,IAAIF,EAAM,KAAK,GAAG,CAAC,GAAGI,EAAW,MAAMD,CAAK,GAAK,EAAE,GACrE,mBClHA,OAAO,eAAwBlI,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQC,EAAQC,EAAK,CAC1B,QAAQC,KAAQD,EAAI,OAAO,eAAeD,EAAQE,EAAM,CACpD,WAAY,GACZ,IAAKD,EAAIC,CAAI,CACrB,CAAK,CACJ,CACDH,EAAQb,EAAS,CACb,eAAgB,UAAW,CACvB,OAAOoI,CACV,EACD,QAAS,UAAW,CAChB,OAAOC,CACV,CACL,CAAC,EACD,MAAMC,EAASlH,GACf,SAASgH,EAAeL,EAAOQ,EAAYC,EAAc,CACrD,GAAI,OAAOT,GAAU,WACjB,OAAOA,EAAM,CACT,aAAcQ,CAC1B,CAAS,EAEL,IAAIE,KAAaH,EAAO,YAAYP,EAAO,CACvC,MAAO,EACf,CAAK,EACD,OAAIU,IAAW,KACJD,KAEAF,EAAO,aAAa,CAC3B,GAAGG,EACH,MAAOF,CACf,CAAK,CACJ,CACD,SAASF,EAAkB,CAAE,MAAAN,EAAQ,SAAAW,EAAW,SAAAC,CAAQ,EAAK,CACzD,IAAIC,EAAa,CAAA,EAAG,OAAOF,CAAQ,EACnC,GAAI,OAAOX,GAAU,WACjB,MAAO,CACH,CAACY,CAAQ,EAAG,IACZ,GAAG,OAAO,YAAYC,EAAW,IAAK,GAC3B,CACH,EACAb,EAAM,CACF,gBAAiBY,EACjB,aAAc,OAAOA,CAAQ,GACrD,CAAqB,CACrB,CACa,CAAC,CACd,EAEI,MAAMF,KAAaH,EAAO,YAAYP,CAAK,EAC3C,OAAIU,IAAW,KACJ,OAAO,YAAYG,EAAW,IAAK,GAAI,CACtC,EACAb,CACH,CAAA,CAAC,EAENU,EAAO,QAAU,OAEV,OAAO,YAAYG,EAAW,IAAK,GAAI,CACtC,EACAb,CACH,CAAA,CAAC,EAEH,CACH,CAACY,CAAQ,EAAG,IACZ,GAAG,OAAO,YAAYC,EAAW,IAAK,GAC3B,CACH,KACIN,EAAO,aAAa,CACpB,GAAGG,EACH,MAAO,OAAOE,CAAQ,GAC1C,CAAiB,CACjB,CACS,CAAC,CACV,CACA,0CC/DA,OAAO,eAAwB3I,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,sBAAuB,CAClD,WAAY,GACZ,IAAK,UAAW,CACZ,OAAO6I,CACV,CACL,CAAC,EACD,SAASA,EAAoBjH,EAAOkH,EAAW,CAC3C,IAAIC,EAAQ,CAAA,EACRC,EAAQ,CAAA,EACRC,EAAU,EACVC,EAAY,GAChB,QAAQC,EAAM,EAAGA,EAAMvH,EAAM,OAAQuH,IAAM,CACvC,IAAIC,EAAOxH,EAAMuH,CAAG,EAChBJ,EAAM,SAAW,GAAKK,IAASN,EAAU,CAAC,GAAK,CAACI,IAC5CJ,EAAU,SAAW,GAAKlH,EAAM,MAAMuH,EAAKA,EAAML,EAAU,MAAM,IAAMA,KACvEE,EAAM,KAAKpH,EAAM,MAAMqH,EAASE,CAAG,CAAC,EACpCF,EAAUE,EAAML,EAAU,QAG9BI,EACAA,EAAY,GACLE,IAAS,OAChBF,EAAY,IAEZE,IAAS,KAAOA,IAAS,KAAOA,IAAS,IACzCL,EAAM,KAAKK,CAAI,GACRA,IAAS,KAAOL,EAAMA,EAAM,OAAS,CAAC,IAAM,KAAOK,IAAS,KAAOL,EAAMA,EAAM,OAAS,CAAC,IAAM,KAAOK,IAAS,KAAOL,EAAMA,EAAM,OAAS,CAAC,IAAM,MACzJA,EAAM,IAAG,CAEhB,CACD,OAAAC,EAAM,KAAKpH,EAAM,MAAMqH,CAAO,CAAC,EACxBD,CACX,oBCjDA,OAAO,eAAwBhJ,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQC,EAAQC,EAAK,CAC1B,QAAQC,KAAQD,EAAI,OAAO,eAAeD,EAAQE,EAAM,CACpD,WAAY,GACZ,IAAKD,EAAIC,CAAI,CACrB,CAAK,CACJ,CACDH,EAAQb,EAAS,CACb,oBAAqB,UAAW,CAC5B,OAAOqJ,CACV,EACD,qBAAsB,UAAW,CAC7B,OAAOC,CACV,CACL,CAAC,EACD,MAAMC,EAAuBnI,GAC7B,IAAIoI,EAAW,IAAI,IAAI,CACnB,QACA,UACA,UACA,SACA,OACJ,CAAC,EACGC,EAAQ,kBAERC,EAAS,wBACb,SAASL,EAAoBzH,EAAO,CAEhC,SADkB2H,EAAqB,qBAAqB3H,EAAO,GAAG,EACvD,IAAK+H,GAAS,CACzB,IAAIzJ,EAAQyJ,EAAO,OACfC,EAAS,CACT,IAAK1J,CACjB,EACY8I,EAAQ9I,EAAM,MAAMuJ,CAAK,EACzBI,EAAO,IAAI,IACf,QAAS7B,KAAQgB,EAEbU,EAAO,UAAY,EAEf,CAACG,EAAK,IAAI,SAAS,GAAKL,EAAS,IAAIxB,CAAI,GACzC4B,EAAO,QAAU5B,EACjB6B,EAAK,IAAI,SAAS,GACXH,EAAO,KAAK1B,CAAI,EAClB6B,EAAK,IAAI,GAAG,EAGLA,EAAK,IAAI,GAAG,EAGZA,EAAK,IAAI,MAAM,EAGfA,EAAK,IAAI,QAAQ,IACzBD,EAAO,OAAS5B,EAChB6B,EAAK,IAAI,QAAQ,IAJjBD,EAAO,KAAO5B,EACd6B,EAAK,IAAI,MAAM,IAJfD,EAAO,EAAI5B,EACX6B,EAAK,IAAI,GAAG,IAJZD,EAAO,EAAI5B,EACX6B,EAAK,IAAI,GAAG,GAYXD,EAAO,OAGHA,EAAO,UAASA,EAAO,QAAU,CAAA,GACtCA,EAAO,QAAQ,KAAK5B,CAAI,GAHxB4B,EAAO,MAAQ5B,EAQ3B,OAAA4B,EAAO,MAAQA,EAAO,IAAM,QAAaA,EAAO,IAAM,OAC/CA,CACf,CAAK,CACJ,CACD,SAASN,EAAqBQ,EAAS,CACnC,OAAOA,EAAQ,IAAKH,GACXA,EAAO,MAGL,CACHA,EAAO,QACPA,EAAO,EACPA,EAAO,EACPA,EAAO,KACPA,EAAO,OACPA,EAAO,KACV,EAAC,OAAO,OAAO,EAAE,KAAK,GAAG,EATfA,EAAO,GAUrB,EAAE,KAAK,IAAI,CAChB,mBCtFA,OAAO,eAAwB3J,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQC,EAAQC,EAAK,CAC1B,QAAQC,KAAQD,EAAI,OAAO,eAAeD,EAAQE,EAAM,CACpD,WAAY,GACZ,IAAKD,EAAIC,CAAI,CACrB,CAAK,CACJ,CACDH,EAAQb,EAAS,CACb,UAAW,UAAW,CAClB,OAAO+J,CACV,EACD,IAAK,UAAW,CACZ,OAAOC,CACV,EACD,OAAQ,UAAW,CACf,OAAOC,CACV,EACD,WAAY,UAAW,CACnB,OAAOC,CACV,EACD,OAAQ,UAAW,CACf,OAAOC,CACV,EACD,UAAW,UAAW,CAClB,OAAOC,CACV,EACD,OAAQ,UAAW,CACf,OAAOT,CACV,EACD,MAAO,UAAW,CACd,OAAO5B,CACV,EACD,MAAO,UAAW,CACd,OAAOsC,CACV,EACD,SAAU,UAAW,CACjB,OAAOC,CACV,EACD,SAAU,UAAW,CACjB,OAAOC,CACV,EACD,WAAY,UAAW,CACnB,OAAOC,CACV,EACD,YAAa,UAAW,CACpB,OAAOC,CACV,EACD,aAAc,UAAW,CACrB,OAAOC,CACV,EACD,aAAc,UAAW,CACrB,OAAOC,CACV,CACL,CAAC,EACD,MAAMrC,EAASlH,GACTwJ,EAAuB9H,GACvByG,EAAuBsB,GAC7B,IAAIC,EAAe,CACf,MACA,MACA,QACA,MACJ,EAEA,SAASC,EAAc7K,EAAO,CAC1B,OAAO4K,EAAa,KAAMzK,GAAK,IAAI,OAAO,IAAIA,CAAE,UAAU,EAAE,KAAKH,CAAK,CAAC,CAC1E,CACD,MAAM8K,EAAc,mBACdC,EAAgB,IAAI,OAAOD,EAAa,GAAG,EACjD,SAASjB,EAAU7J,EAAOgL,EAAS,GAAM,CACrC,OAAIhL,EAAM,WAAW,IAAI,EACd,OAAOA,CAAK,IAGnBA,EAAM,SAAS,MAAM,EACdA,EAAM,MAAM,eAAe,EAAE,OAAO,OAAO,EAAE,IAAK8H,GACjD,eAAe,KAAKA,CAAI,EACjBA,EAEJ+B,EAAU/B,EAAM,EAAK,CAC/B,EAAE,KAAK,EAAE,GAGd9H,EAAQA,EAAM,QAAQ,aAAc,CAACiL,EAAWC,IAAkBA,EAAkB,IAAI,OAAOD,EAAU,OAAS,CAAC,CAAC,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,OAAQ,GAAG,EAEzJD,IACAhL,EAAQA,EAAM,QAElBA,EAAQmL,EAA6BnL,CAAK,EACnCA,EACV,CAOG,SAASmL,EAA6BnL,EAAO,CAC7C,OAAOA,EAAM,QAAQ,8BAAgC4H,GAAQ,CACzD,IAAIwD,EAAO,CAAA,EACX,OAAOxD,EAAM,QAAQ,oBAAqB,CAACA,EAAOyD,MAC9CD,EAAK,KAAKC,EAAE,EACLzD,EAAM,QAAQyD,GAAIP,CAAW,EACvC,EAAE,QAAQ,sEAAuE,QAAQ,EAAE,QAAQC,EAAe,IAAIK,EAAK,MAAK,CAAE,CAC3I,CAAK,CACJ,CACD,SAAStB,EAAI9J,EAAO,CAChB,OAAOA,EAAM,WAAW,MAAM,CACjC,CACD,SAAS+J,EAAO/J,EAAO,CACnB,MAAO,CAAC,MAAM,OAAOA,CAAK,CAAC,GAAK6K,EAAc7K,CAAK,CACtD,CACD,SAASgK,EAAWhK,EAAO,CACvB,OAAOA,EAAM,SAAS,GAAG,GAAK+J,EAAO/J,EAAM,MAAM,EAAG,EAAE,CAAC,GAAK6K,EAAc7K,CAAK,CAClF,CAqCD,IAAIsL,EAAqB,MAjCP,CACd,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,OACA,OACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,OACJ,EAC2C,KAAK,GAAG,CAAC,IACpD,SAASrB,EAAOjK,EAAO,CACnB,OAAOA,IAAU,KAAO,IAAI,OAAO,2CAA4CsL,CAAkB,GAAG,EAAE,KAAKtL,CAAK,GAAK6K,EAAc7K,CAAK,CAC3I,CACD,IAAIuL,EAAa,IAAI,IAAI,CACrB,OACA,SACA,OACJ,CAAC,EACD,SAASrB,EAAUlK,EAAO,CACtB,OAAOuL,EAAW,IAAIvL,CAAK,CAC9B,CACD,SAASyJ,EAAOzJ,EAAO,CACnB,IAAIwL,KAAoBd,EAAqB,qBAAqBb,EAAU7J,CAAK,CAAC,EAClF,QAASyL,KAAgBD,EACrB,GAAI,CAACC,EAAa,MACd,MAAO,GAGf,MAAO,EACV,CACD,SAAS5D,EAAM7H,EAAO,CAClB,IAAI0L,EAAS,EASb,SARiBrC,EAAqB,qBAAqBrJ,EAAO,GAAG,EAAE,MAAO8H,IAC1EA,EAAO+B,EAAU/B,CAAI,EACjBA,EAAK,WAAW,MAAM,EAAU,MAC5BM,EAAO,YAAYN,EAAM,CAC7B,MAAO,EACV,CAAA,IAAM,MAAa4D,IAAU,IACvB,GACV,EAEMA,EAAS,EADI,EAEvB,CACD,SAASvB,EAAMnK,EAAO,CAClB,IAAI2L,EAAS,EAeb,SAdiBtC,EAAqB,qBAAqBrJ,EAAO,GAAG,EAAE,MAAO8H,IAC1EA,EAAO+B,EAAU/B,CAAI,EACjBA,EAAK,WAAW,MAAM,EAAU,GAChCgC,EAAIhC,CAAI,GAAKsC,EAAStC,CAAI,GAAK,CAC/B,WACA,SACA,cACA,YACZ,EAAU,KAAM3H,IAAK2H,EAAK,WAAW3H,EAAE,CAAC,GAC5BwL,IACO,IAEJ,GACV,EAEMA,EAAS,EADI,EAEvB,CACD,IAAIC,EAAgB,IAAI,IAAI,CACxB,iBACA,kBACA,kBACA,2BACA,4BACA,2BACJ,CAAC,EACD,SAASxB,EAASpK,EAAO,CACrBA,EAAQ6J,EAAU7J,CAAK,EACvB,QAASsB,KAAQsK,EACb,GAAI5L,EAAM,WAAW,GAAGsB,CAAI,GAAG,EAC3B,MAAO,GAGf,MAAO,EACV,CACD,IAAIuK,EAAiB,IAAI,IAAI,CACzB,SACA,MACA,QACA,SACA,MACJ,CAAC,EACD,SAASxB,EAASrK,EAAO,CACrB,IAAI8L,EAAY,EAUhB,SATiBzC,EAAqB,qBAAqBrJ,EAAO,GAAG,EAAE,MAAO8H,IAC1EA,EAAO+B,EAAU/B,CAAI,EACjBA,EAAK,WAAW,MAAM,EAAU,GAChC+D,EAAe,IAAI/D,CAAI,GAAKmC,EAAOnC,CAAI,GAAKkC,EAAWlC,CAAI,GAC3DgE,IACO,IAEJ,GACV,EAEMA,EAAY,EADC,EAEvB,CACD,SAASxB,EAAWtK,EAAO,CACvB,IAAI+L,EAAQ,EAiBZ,SAhBiB1C,EAAqB,qBAAqBrJ,EAAO,GAAG,EAAE,MAAO8H,IAC1EA,EAAO+B,EAAU/B,CAAI,EACjBA,EAAK,WAAW,MAAM,EAAU,GAEhCA,EAAK,SAAS,GAAG,GACb,CAAC,oBAAoB,KAAKA,CAAI,GAKlC,OAAO,KAAKA,CAAI,EACT,IAEXiE,IACO,IACV,EAEMA,EAAQ,EADK,EAEvB,CACD,IAAIC,EAAe,IAAI,IAAI,CACvB,QACA,aACA,YACA,UACA,UACA,YACA,WACA,gBACA,eACA,aACA,OACA,QACA,UACJ,CAAC,EACD,SAASzB,EAAYvK,EAAO,CACxB,OAAOgM,EAAa,IAAIhM,CAAK,CAChC,CACD,IAAIiM,EAAgB,IAAI,IAAI,CACxB,WACA,UACA,QACA,SACA,QACA,UACA,UACA,WACJ,CAAC,EACD,SAASzB,EAAaxK,EAAO,CACzB,OAAOiM,EAAc,IAAIjM,CAAK,CACjC,CACD,IAAIkM,EAAgB,IAAI,IAAI,CACxB,SACA,SACJ,CAAC,EACD,SAASzB,EAAazK,EAAO,CACzB,OAAOkM,EAAc,IAAIlM,CAAK,CAClC,8BC9SA,OAAO,eAAwBF,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,iBAAkB,CAC7C,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOqM,CACV,CACL,CAAC,EACD,MAAMC,EAAalL,GACbmI,EAAuBzG,GAC7B,SAASuJ,EAAenM,EAAO,CAC3B,IAAIqM,EAAgB,CAChB,QACA,SACR,EAGI,SAAWhD,EAAqB,qBAAqBrJ,EAAO,GAAG,EAAE,MAAO8H,GAAO,CAC3E,IAAIwE,KAAYjD,EAAqB,qBAAqBvB,EAAM,GAAG,EAAE,OAAO,OAAO,EACnF,OAAIwE,EAAM,SAAW,GAAKD,EAAc,SAASC,EAAM,CAAC,CAAC,EAAU,GAC/DA,EAAM,SAAW,GAAKA,EAAM,SAAW,EAAU,GAC9CA,EAAM,MAAOC,MAAWH,EAAW,QAAQG,CAAI,MAASH,EAAW,YAAYG,CAAI,GAAKA,IAAS,MAAM,CACtH,CAAK,CACL,oBCxBA,OAAO,eAAwBzM,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQC,EAAQC,EAAK,CAC1B,QAAQC,KAAQD,EAAI,OAAO,eAAeD,EAAQE,EAAM,CACpD,WAAY,GACZ,IAAKD,EAAIC,CAAI,CACrB,CAAK,CACJ,CACDH,EAAQb,EAAS,CACb,iBAAkB,UAAW,CACzB,OAAO0M,CACV,EACD,QAAS,UAAW,CAChB,OAAOC,CACV,EACD,iBAAkB,UAAW,CACzB,OAAOC,CACV,EACD,QAAS,UAAW,CAChB,OAAOC,CACV,EACD,cAAe,UAAW,CACtB,OAAOC,CACV,EACD,QAAS,UAAW,CAChB,OAAOC,CACV,EACD,YAAa,UAAW,CACpB,OAAOC,CACV,EACD,iBAAkB,UAAW,CACzB,OAAOC,CACV,CACL,CAAC,EACD,MAAMC,EAA8B/L,EAAyBC,EAAyB,EAChF+L,EAAqBrK,GACrBwJ,EAAazB,GACbuC,EAA6BjM,EAAyBkM,EAAwB,EAC9EC,EAAwBC,GACxB3J,EAAgB4J,GACtB,SAASrM,EAAyBE,EAAK,CACnC,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CACjC,QAASA,CACjB,CACC,CACD,SAASqL,EAAiBe,EAAWC,EAAa,CAC9CD,EAAU,YAAaE,GAAM,CACzBA,EAAI,MAAQD,EAAYC,EAAI,KAAK,EAC7BA,EAAI,MAAQA,EAAI,KAAK,QACrBA,EAAI,KAAK,SAAYT,EAAc,SAASS,EAAI,KAAK,KAAK,EAEtE,CAAK,CACJ,CACD,SAASC,EAAsBC,EAAUC,EAAU,CAC/C,GAAI,CAACC,EAAiBF,CAAQ,EAC1B,OAEJ,IAAI3N,EAAQ2N,EAAS,MAAM,EAAG,EAAE,EAChC,GAAKC,EAAS5N,CAAK,EAGnB,SAAWoM,EAAW,WAAWpM,CAAK,CACzC,CACD,SAAS8N,EAAgBH,EAAUI,EAAS,CAAA,EAAIH,EAAU,CACtD,IAAII,EAAgBD,EAAOJ,CAAQ,EACnC,GAAIK,IAAkB,OAClB,SAAWd,EAAa,SAASc,CAAa,EAElD,GAAIH,EAAiBF,CAAQ,EAAG,CAC5B,IAAIM,EAAWP,EAAsBC,EAAUC,CAAQ,EACvD,OAAIK,IAAa,OACb,UAEOf,EAAa,SAASe,CAAQ,CAC5C,CACJ,CACD,SAASxB,EAAQkB,EAAUO,EAAU,CAAA,EAAI,CAAE,SAAAN,EAAU,IAAI,EAAO,EAAG,GAAI,CACnE,IAAIO,EACJ,IAAInO,GAASmO,EAAkBD,EAAQ,UAAY,MAAQC,IAAoB,OAAS,OAASA,EAAgBR,CAAQ,EACzH,OAAI3N,IAAU,OACHA,EAEPkO,EAAQ,wBAA0BP,EAAS,WAAW,GAAG,EAClDG,EAAgBH,EAAS,MAAM,CAAC,EAAGO,EAAQ,OAAQN,CAAQ,EAE/DF,EAAsBC,EAAUC,CAAQ,CAClD,CACD,SAASC,EAAiBnM,EAAO,CAC7B,OAAOA,EAAM,WAAW,GAAG,GAAKA,EAAM,SAAS,GAAG,CACrD,CACD,SAAS0M,EAAqBT,EAAU,CACpC,IAAIU,EAAWV,EAAS,YAAY,GAAG,EACvC,OAAIU,IAAa,IAAMA,IAAaV,EAAS,OAAS,EAC3C,CACHA,EACA,MACZ,EAEoBE,EAAiBF,CAAQ,GAIxB,CAACA,EAAS,SAAS,KAAK,EAC9B,CACHA,EACA,MACZ,EAEW,CACHA,EAAS,MAAM,EAAGU,CAAQ,EAC1BV,EAAS,MAAMU,EAAW,CAAC,CACnC,CACC,CACD,SAAS3B,EAAiB1M,EAAO,CAC7B,GAAI,OAAOA,GAAU,UAAYA,EAAM,SAAS,eAAe,EAAG,CAC9D,IAAIsO,EAAWtO,EACf,MAAO,CAAC,CAAE,aAAAuO,EAAc,CAAI,IAAGD,EAAS,QAAQ,gBAAiBC,CAAY,CAChF,CACD,OAAOvO,CACV,CACD,SAASwO,EAAwBb,EAAU,CACvC,SAAWvB,EAAW,WAAWuB,EAAS,MAAM,EAAG,EAAE,CAAC,CACzD,CACD,SAAShB,EAAQgB,EAAUO,EAAU,CAAA,EAAI,CAAE,eAAAO,EAAgB,CAAA,CAAK,EAAG,GAAI,CACnE,IAAIN,EACJ,KAAMA,EAAkBD,EAAQ,UAAY,MAAQC,IAAoB,OAAS,OAASA,EAAgBR,CAAQ,KAAO,OAAW,CAChI,IAAIe,EACJ,OAAOhC,GAAkBgC,EAAmBR,EAAQ,UAAY,MAAQQ,IAAqB,OAAS,OAASA,EAAiBf,CAAQ,CAAC,CAC5I,CAGD,GAAI,CAAC9F,EAAOG,CAAK,EAAIoG,EAAqBT,CAAQ,EAClD,GAAI3F,IAAU,OAAW,CACrB,IAAI2G,EAAkBC,EAAuBC,EACzCC,EACJ,IAAIC,GAAmBD,GAAyBH,EAAmBT,EAAQ,UAAY,MAAQS,IAAqB,OAAS,OAASA,EAAiB9G,CAAK,KAAO,MAAQiH,IAA0B,OAASA,EAAwBjB,EAAiBhG,CAAK,EAAIA,EAAM,MAAM,EAAG,EAAE,EAAI,OACrR,OAAIkH,IAAoB,OACpB,QAEJA,EAAkBrC,EAAiBqC,CAAe,EAC9ClB,EAAiB7F,CAAK,KACXiF,EAAmB,gBAAgB8B,EAAiBP,EAAwBxG,CAAK,CAAC,IAE3F4G,EAAwBH,EAAe,SAAW,MAAQG,IAA0B,SAAmBC,EAAgCD,EAAsB,WAAa,MAAQC,IAAkC,OAAvH,OAAyIA,EAA8B7G,CAAK,KAAO,OAClR,UAEOiF,EAAmB,gBAAgB8B,EAAiBN,EAAe,MAAM,QAAQzG,CAAK,CAAC,EACrG,CACD,OAAOyE,EAAQkB,EAAUO,EAAS,CAC9B,SAAU9B,EAAW,KAC7B,CAAK,CACJ,CACD,SAASQ,EAAce,EAAUO,EAAU,GAAI,CAC3C,IAAIC,EACJ,OAAQA,EAAkBD,EAAQ,UAAY,MAAQC,IAAoB,OAAS,OAASA,EAAgBR,CAAQ,CACvH,CACD,SAASqB,EAAMpB,EAAU,CACrB,MAAO,CAACD,EAAUO,IACPzB,EAAQkB,EAAUO,EAAS,CAC9B,SAAAN,CACZ,CAAS,CAER,CACD,IAAIf,EAAU,CACV,IAAKJ,EACL,MAAOE,EACP,IAAKqC,EAAM5C,EAAW,GAAG,EACzB,MAAO4C,EAAM5C,EAAW,KAAK,EAC7B,OAAQ4C,EAAM5C,EAAW,MAAM,EAC/B,WAAY4C,EAAM5C,EAAW,UAAU,EACvC,SAAU4C,EAAM5C,EAAW,QAAQ,EACnC,OAAQQ,EACR,eAAgBoC,EAAM5C,EAAW,WAAW,EAC5C,cAAe4C,EAAM5C,EAAW,UAAU,EAC1C,OAAQ4C,EAAM5C,EAAW,MAAM,EAC/B,aAAc4C,EAAM5C,EAAW,SAAS,EACxC,gBAAiB4C,EAAM5C,EAAW,YAAY,EAC9C,gBAAiB4C,EAAM5C,EAAW,YAAY,EAC9C,OAAQ4C,EAAM5C,EAAW,MAAM,EAC/B,KAAM4C,EAAM5B,EAAsB,cAAc,CACpD,EACI6B,EAAiB,OAAO,KAAKpC,CAAO,EACxC,SAASqC,EAAaxN,EAAOyN,EAAO,CAChC,IAAIlG,EAAMvH,EAAM,QAAQyN,CAAK,EAC7B,OAAIlG,IAAQ,GAAW,CACnB,OACAvH,CACR,EACW,CACHA,EAAM,MAAM,EAAGuH,CAAG,EAClBvH,EAAM,MAAMuH,EAAM,CAAC,CAC3B,CACC,CACD,SAAS6D,EAAYsC,EAAOzB,EAAUO,EAASO,EAAgB,CAC3D,GAAIP,EAAQ,QAAUP,KAAYO,EAAQ,OACtC,OAAS,CAAE,KAAA5M,CAAO,IAAI8N,GAAU,KAA2BA,EAAQ,GAAG,CAClE,IAAI1F,EAASmD,EAAQvL,CAAI,EAAEqM,EAAUO,EAAS,CAC1C,eAAAO,CAChB,CAAa,EACD,GAAI/E,IAAW,OAGf,MAAO,CACHA,EACApI,EACA,IAChB,CACS,CAEL,GAAIuM,EAAiBF,CAAQ,EAAG,CAC5B,IAAI0B,EAAiB1B,EAAS,MAAM,EAAG,EAAE,EACrC,CAAC2B,EAActP,CAAK,EAAIkP,EAAaG,EAAgB,GAAG,EAI5D,GAAI,CAAC,aAAa,KAAKC,CAAY,EAC/BtP,EAAQqP,UACDC,IAAiB,QAAa,CAACL,EAAe,SAASK,CAAY,EAC1E,MAAO,GAEX,GAAItP,EAAM,OAAS,GAAKiP,EAAe,SAASK,CAAY,EACxD,MAAO,CACH7C,EAAQ,IAAIzM,CAAK,IAAKkO,CAAO,EAC7BoB,EACA,IAChB,CAEK,CACD,IAAIC,EAAUxC,EAAiBqC,EAAOzB,EAAUO,EAASO,CAAc,EAEvE,QAAS7G,KAAS2H,EACd,OAAO3H,EAEX,MAAO,EACV,CACD,SAAUmF,EAAiBqC,EAAOI,EAAatB,EAASO,EAAgB,CACpE,IAAIgB,KAAuB/L,EAAc,aAAa+K,EAAgB,sBAAsB,EACxF,CAACd,EAAU+B,CAAe,EAAItB,EAAqBoB,CAAW,EAWlE,GAV4BC,GAAoBvB,EAAQ,WAAa,OAASA,EAAQ,YAAc,OAAS,OAAOA,EAAQ,WAAc,WAAawB,GAAmB7B,EAAiB6B,CAAe,GAAKA,KAAmBxB,EAAQ,cAEtOP,EAAW6B,EACXE,EAAkB,QAElBA,IAAoB,QAAa/B,IAAa,KAC9CA,EAAW,WAIX+B,IAAoB,QAChB,OAAOxB,EAAQ,WAAc,SAAU,CACvC,IAAIyB,EACAC,EACJ,IAAIC,GAAeD,GAAsCD,EAAqBzB,EAAQ,aAAe,MAAQyB,IAAuB,OAAS,OAASA,EAAmBD,CAAe,KAAO,MAAQE,IAAuC,OAASA,EAAqC,KACxRC,IAAgB,KAChBH,EAAkBG,EACXhC,EAAiB6B,CAAe,IACvCA,EAAkBlB,EAAwBkB,CAAe,EAEhE,CAEL,OAAS,CAAE,KAAApO,CAAO,IAAI8N,GAAU,KAA2BA,EAAQ,GAAG,CAClE,IAAI1F,EAASmD,EAAQvL,CAAI,EAAEqM,EAAUO,EAAS,CAC1C,eAAAO,CACZ,CAAS,EACG/E,IAAW,SAGf,KAAM,CACFA,EACApI,EACAoO,GAAoB,KAAqCA,EAAkB,IACvF,EACK,CACL,8BClRA,OAAO,eAAwB5P,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOgQ,CACV,CACL,CAAC,EACD,SAASA,EAAaC,EAAe,CACjC,OAAO,OAAOA,GAAkB,WAAaA,EAAc,CAAE,CAAA,EAAIA,CACrE,oBCXA,OAAO,eAAwBjQ,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOkQ,CACV,CACL,CAAC,EACD,MAAM9C,EAA6BjM,EAAyBC,EAAwB,EAC9E+O,EAAgChP,EAAyB2B,EAA4B,EACrFsN,EAAkCjP,EAAyB0J,EAA6B,EACxFwF,EAAwBlP,EAAyBkM,EAA2B,EAC5EiD,EAAY/C,GACZgD,EAAU/C,GACVgD,EAAmBC,GACnBC,EAA+BvP,EAAyBwP,EAA0B,EAClFC,EAAaC,GACbC,EAAeC,GACf5D,EAAqB6D,GACrBC,EAA8B9P,EAAyB+P,EAAyB,EACtF,SAAS/P,EAAyBE,EAAK,CACnC,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CACjC,QAASA,CACjB,CACC,CACD,SAAS8P,EAAWvP,EAAO,CACvB,OAAO,OAAOA,GAAU,UAC3B,CACD,SAASwP,EAAUtQ,KAAWqB,EAAS,CACnC,IAAIkP,EAAalP,EAAQ,MACzB,QAASC,KAAUD,EACf,QAAQE,KAAKD,EAAO,CAChB,IAAIkP,EAASD,EAAWvQ,EAAOuB,CAAC,EAAGD,EAAOC,CAAC,CAAC,EACxCiP,IAAW,UACHZ,EAAe,SAAS5P,EAAOuB,CAAC,CAAC,MAASqO,EAAe,SAAStO,EAAOC,CAAC,CAAC,EAC/EvB,EAAOuB,CAAC,EAAI+O,EAAU,GAAItQ,EAAOuB,CAAC,EAAGD,EAAOC,CAAC,EAAGgP,CAAU,EAE1DvQ,EAAOuB,CAAC,EAAID,EAAOC,CAAC,EAGxBvB,EAAOuB,CAAC,EAAIiP,CAEnB,CAEL,OAAOxQ,CACV,CACD,MAAMyQ,EAAc,CAChB,OAAQlB,EAAQ,QAChB,SAAUmB,EAAO,CAEb,OAAO,OAAO,KAAKA,CAAK,EAAE,OAAQ9P,GAAM8P,EAAM9P,CAAG,IAAM,GAAG,EAAE,OAAO,CAAC+P,EAAe/P,IAAM,CACrF,IAAIgQ,KAAoBtE,EAAa,SAASoE,EAAM9P,CAAG,CAAC,EACxD,OAAIgQ,IAAkB,SAClBD,EAAc,IAAI/P,CAAG,EAAE,EAAIgQ,GAExBD,CACV,EAAE,CAAE,CAAA,CACR,EACD,YAAaE,EAAS,CAClB,OAAO,OAAO,KAAKA,CAAO,EAAE,OAAQjQ,GAAM,OAAOiQ,EAAQjQ,CAAG,GAAM,QAAQ,EAAE,OAAO,CAACkQ,EAAalQ,KAAO,CAChG,GAAGkQ,EACH,CAAC,UAAUlQ,CAAG,EAAE,EAAGiQ,EAAQjQ,CAAG,CAC9C,GAAgB,CAAE,CAAA,CACb,CACL,EACA,SAASxB,EAAM2R,KAAmBC,EAAM,CACpC,OAAOX,EAAWU,CAAc,EAAIA,EAAe,GAAGC,CAAI,EAAID,CACjE,CACD,SAASE,EAAeC,EAAO,CAC3B,OAAOA,EAAM,OAAO,CAACV,EAAQ,CAAE,OAAAW,CAAM,IAC1Bb,EAAUE,EAAQW,EAAQ,CAACC,EAAaC,IACvCD,IAAgB,OACT,CACHC,CACpB,EAEgB,MAAM,QAAQD,CAAW,EAClB,CACHC,EACA,GAAGD,CACvB,EAEmB,CACHC,EACAD,CAChB,CACS,EACF,CAAE,CAAA,CACR,CACD,SAASE,EAAYC,EAAQ,CACzB,MAAO,CACH,GAAGA,EAAO,OAAO,CAACf,EAAQgB,OAAYhC,EAAU,UAAUgB,EAAQgB,CAAK,EAAG,CAAA,CAAE,EAG5E,OAAQP,EAAeM,CAAM,CACrC,CACC,CACD,SAASE,EAAyBjB,EAAQpR,EAAO,CAE7C,GAAI,MAAM,QAAQoR,CAAM,MAASZ,EAAe,SAASY,EAAO,CAAC,CAAC,EAC9D,OAAOA,EAAO,OAAOpR,CAAK,EAG9B,GAAI,MAAM,QAAQA,CAAK,MAASwQ,EAAe,SAASxQ,EAAM,CAAC,CAAC,MAASwQ,EAAe,SAASY,CAAM,EACnG,MAAO,CACHA,EACA,GAAGpR,CACf,EAGI,GAAI,MAAM,QAAQA,CAAK,EACnB,OAAOA,CAId,CACD,SAASsS,EAAgB,CAAE,OAAAP,EAAS,GAAGK,CAAK,EAAI,CAC5C,OAAOlB,EAAUkB,EAAOL,EAAQ,CAACQ,EAAY/M,IAErC,CAACyL,EAAWsB,CAAU,GAAK,CAAC/M,EAAW,KAAKyL,CAAU,EAC/CC,EAAU,CAAA,EAAIqB,EAAY,GAAG/M,EAAY6M,CAAwB,EAErE,CAACG,EAAkBC,IAAQvB,EAAU,CAAE,EAAE,GAAG,CAC3CqB,EACA,GAAG/M,CACnB,EAAc,IAAKkN,GAAI1S,EAAM0S,EAAGF,EAAkBC,CAAK,CAAC,EAAGJ,CAAwB,CAC9E,CACJ,CAKG,SAAUM,EAAQnR,EAAK,CACvB,IAAIe,KAAW8N,EAAQ,QAAQ7O,CAAG,EAKlC,GAJIe,EAAK,SAAW,IAGpB,MAAMA,EACF,MAAM,QAAQf,CAAG,GACjB,OAEJ,IAAIoR,EAAU,yBACVrD,EAAU/N,EAAI,MAAMoR,CAAO,EAC/B,GAAIrD,IAAY,KAAM,CAClB,GAAI,EAAGsD,EAAQ7K,CAAK,EAAIuH,EACpBuD,KAAczC,EAAQ,QAAQwC,CAAM,EACxCC,EAAQ,MAAQ9K,EAChB,MAAM8K,CACT,CACJ,CACD,SAASC,EAAoBC,EAAQ,CAEjC,MAAMC,EAAc,CAACzR,EAAK8G,IAAe,CACrC,UAAW/F,KAAQoQ,EAAQnR,CAAG,EAAE,CAC5B,IAAI0R,EAAQ,EACRC,EAAMH,EACV,KAA2BG,GAAQ,MAAQD,EAAQ3Q,EAAK,QACpD4Q,EAAMA,EAAI5Q,EAAK2Q,GAAO,CAAC,EAEvBC,EADwBlC,EAAWkC,CAAG,IAAM5Q,EAAK,QAAU,QAAa2Q,GAAS3Q,EAAK,OAAS,GACrE4Q,EAAIF,EAAa5B,CAAW,EAAI8B,EAE9D,GAAIA,IAAQ,OAAW,CACnB,GAAI5Q,EAAK,QAAU,OAAW,CAC1B,IAAI6Q,KAAiBxC,EAAa,kBAAkBuC,CAAG,EACvD,SAAWlG,EAAmB,gBAAgBmG,EAAY7Q,EAAK,SAAWwO,EAAc,SAASqC,CAAU,CAAC,CAC/G,CACD,SAAQ5C,EAAe,SAAS2C,CAAG,KACpBzC,EAAW,WAAWyC,CAAG,EAEjCA,CACV,CACJ,CACD,OAAO7K,CACf,EACI,cAAO,OAAO2K,EAAa,CACvB,MAAOA,EACP,GAAG5B,CACX,CAAK,EACM,OAAO,KAAK2B,CAAM,EAAE,OAAO,CAAC/E,EAAUzM,KACzCyM,EAASzM,CAAG,EAAIyP,EAAW+B,EAAOxR,CAAG,CAAC,EAAIwR,EAAOxR,CAAG,EAAEyR,EAAa5B,CAAW,EAAI2B,EAAOxR,CAAG,EACrFyM,GACR,CAAE,CAAA,CACR,CACD,SAASoF,EAAqBC,EAAS,CACnC,IAAIC,EAAa,CAAA,EACjB,OAAAD,EAAQ,QAASxQ,GAAS,CACtByQ,EAAa,CACT,GAAGA,EACHzQ,CACZ,EACQ,IAAI0Q,EACJ,MAAMlT,GAAWkT,EAAkB1Q,GAAW,KAA4B,OAASA,EAAO,WAAa,MAAQ0Q,IAAoB,OAASA,EAAkB,GAC1JlT,EAAQ,SAAW,GAGvBA,EAAQ,QAASmT,GAAS,CAClBA,EAAO,sBACPA,EAASA,EAAM,GAEnB,IAAIC,EACJH,EAAa,CACT,GAAGA,EACH,GAAGF,EAAqB,EACnBK,EAAiBD,GAAW,KAA4B,OAASA,EAAO,UAAY,MAAQC,IAAmB,OAASA,EAAiB,CAAE,CAChK,CAAiB,CACjB,CACA,CAAS,CACT,CAAK,EACMH,CACV,CACD,SAASI,EAAmBC,EAAmB,CAW3C,MAVe,CACX,GAAGA,CACX,EAAM,YAAY,CAAC3F,EAAU4F,IACjB5C,EAAW4C,CAAgB,EACpBA,EAAiB,CACpB,YAAa5F,CAC7B,CAAa,KAEMiC,EAAkB,SAAS2D,EAAkB5F,CAAQ,EACjEgC,EAAgB,OAAO,CAE7B,CACD,SAAS6D,EAAmBC,EAAa,CASrC,MARe,CACX,GAAGA,CACX,EAAM,YAAY,CAAC9F,EAAU+F,IACd,CACH,GAAG/F,EACH,GAAG+F,CACf,EACO,CAAE,CAAA,CAER,CACD,SAAShE,EAAcsD,EAAS,CAC5B,IAAIC,EAAa,CACb,GAAGF,EAAqBC,CAAO,EAC/B,CACI,OAAQ,GACR,UAAW,GACX,UAAW,GACd,CACT,EACI,IAAIW,EAAUC,EACd,SAAW5D,EAAiB,oBAAqBF,EAAU,UAAU,CACjE,MAAO2C,EAAoBT,EAAgBJ,EAAYqB,EAAW,IAAKY,IAC3DF,EAAWE,GAAM,KAAuB,OAASA,EAAE,SAAW,MAAQF,IAAa,OAASA,EAAW,EAClH,CAAC,CAAC,CAAC,EACJ,YAAaN,EAAmBJ,EAAW,IAAKa,GAAIA,EAAE,WAAW,CAAC,EAClE,QAASN,EAAmBR,EAAQ,IAAKc,IAC7BF,EAAaE,GAAM,KAAuB,OAASA,EAAE,WAAa,MAAQF,IAAe,OAASA,EAAa,EAC1H,CAAC,CACV,EAAO,GAAGX,CAAU,CAAC,CACrB,iBC/PAc,GAAiB,CACf,QAAS,CAAE,EACX,QAAS,CAAE,EACX,SAAU,QACV,MAAO,CACL,YAAa,CAAC,CAAE,MAAAjC,MAAa,CAC3B,GAAGA,EAAM,QAAQ,EACjB,KAAM,MACZ,GACI,UAAW,CACT,KAAM,OACN,KAAM,0BACN,KAAM,8CACN,MAAO,iDACP,OAAQ,oBACT,EACD,KAAM,CACJ,KAAM,cACN,QAAS,iBACT,SAAU,kBACV,SAAU,kBACV,OAAQ,gBACR,QAAS,iBACT,SAAU,kBACV,SAAU,kBACV,SAAU,iBACX,EACD,YAAa,CACX,KAAM,OACN,OAAQ,QACR,MAAO,QACR,EACD,aAAc,CAAC,CAAE,MAAAA,KAAYA,EAAM,MAAM,EACzC,mBAAoB,CAAC,CAAE,MAAAA,KAAYA,EAAM,YAAY,EACrD,iBAAkB,CAAC,CAAE,MAAAA,KAAYA,EAAM,UAAU,EACjD,kBAAmB,CAAC,CAAE,MAAAA,KAAYA,EAAM,WAAW,EACnD,kBAAmB,CAAC,CAAE,MAAAA,KAAYA,EAAM,WAAW,EACnD,eAAgB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAC7C,gBAAiB,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EAC/C,iBAAkB,CAAC,CAAE,MAAAA,KAAYA,EAAM,UAAU,EACjD,cAAe,CAAC,CAAE,MAAAA,KAAYA,EAAM,OAAO,EAC3C,gBAAiB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAC9C,gBAAiB,CACf,KAAM,OACN,gBAAiB,oDACjB,iBAAkB,0DAClB,gBAAiB,sDACjB,iBAAkB,6DAClB,gBAAiB,uDACjB,iBAAkB,4DAClB,gBAAiB,qDACjB,iBAAkB,wDACnB,EACD,kBAAmB,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EACjD,mBAAoB,CAClB,OAAQ,SACR,OAAQ,SACR,KAAM,OACN,cAAe,cACf,WAAY,WACZ,MAAO,QACP,eAAgB,eAChB,YAAa,YACb,IAAK,KACN,EACD,eAAgB,CACd,KAAM,OACN,MAAO,QACP,QAAS,SACV,EACD,KAAM,CACJ,EAAG,IACH,KAAM,IACN,GAAI,MACJ,QAAS,MACT,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,MAAO,OACP,MAAO,MACR,EACD,YAAa,CAAC,CAAE,MAAAA,MAAa,CAC3B,GAAGA,EAAM,QAAQ,EACjB,QAASA,EAAM,kBAAmB,cAAc,CACtD,GACI,cAAe,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EAC7C,aAAc,CACZ,KAAM,MACN,GAAI,WACJ,QAAS,UACT,GAAI,WACJ,GAAI,SACJ,GAAI,UACJ,MAAO,OACP,MAAO,SACP,KAAM,QACP,EACD,cAAe,CAAC,CAAE,MAAAA,MAAa,CAC7B,GAAGA,EAAM,SAAS,CACxB,GACI,YAAa,CACX,QAAS,MACT,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,UAAW,CACT,GAAI,gCACJ,QAAS,gEACT,GAAI,mEACJ,GAAI,qEACJ,GAAI,sEACJ,MAAO,sCACP,MAAO,sCACP,KAAM,MACP,EACD,eAAgB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAC7C,WAAY,CACV,EAAG,IACH,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,IAAK,IACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,GACN,EACD,WAAY,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EACzC,OAAQ,CAAC,CAAE,OAAA1G,MAAc,CACvB,QAASA,EAAO,QAChB,QAASA,EAAO,QAChB,YAAaA,EAAO,YACpB,MAAOA,EAAO,MACd,MAAOA,EAAO,MACd,MAAOA,EAAO,MACd,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,QAASA,EAAO,QAChB,MAAOA,EAAO,MACd,IAAKA,EAAO,IACZ,OAAQA,EAAO,OACf,MAAOA,EAAO,MACd,OAAQA,EAAO,OACf,KAAMA,EAAO,KACb,MAAOA,EAAO,MACd,QAASA,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,IAAKA,EAAO,IACZ,KAAMA,EAAO,KACb,OAAQA,EAAO,OACf,OAAQA,EAAO,OACf,OAAQA,EAAO,OACf,QAASA,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,IACnB,GACI,QAAS,CACP,KAAM,OACN,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,MAAO,QACP,MAAO,QACP,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,OACR,EACD,UAAW,CAAE,EACb,QAAS,CACP,KAAM,MACP,EACD,SAAU,CACR,EAAG,IACH,GAAI,KACJ,GAAI,MACJ,IAAK,IACL,IAAK,OACL,IAAK,MACL,IAAK,GACN,EACD,OAAQ,CACN,KAAM,OACN,QAAS,UACT,QAAS,UACT,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,cAAe,cACf,KAAM,OACN,eAAgB,eAChB,SAAU,WACV,KAAM,OACN,UAAW,YACX,gBAAiB,gBACjB,MAAO,QACP,KAAM,OACN,UAAW,UACX,KAAM,OACN,SAAU,WACV,aAAc,aACd,aAAc,aACd,aAAc,aACd,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,YAAa,YACb,YAAa,YACb,YAAa,YACb,YAAa,YACb,YAAa,YACb,YAAa,YACb,cAAe,cACf,cAAe,cACf,UAAW,UACX,WAAY,UACb,EACD,YAAa,CAAC,CAAE,MAAA0G,KAAYA,EAAM,aAAa,EAC/C,cAAe,CAAC,CAAE,MAAAA,KAAYA,EAAM,eAAe,EACnD,YAAa,CAAC,CAAE,MAAAA,KAAYA,EAAM,aAAa,EAC/C,WAAY,CACV,GAAI,8BACJ,QAAS,CAAC,6BAA8B,6BAA6B,EACrE,GAAI,CAAC,8BAA+B,6BAA6B,EACjE,GAAI,CAAC,+BAAgC,4BAA4B,EACjE,GAAI,CAAC,gCAAiC,6BAA6B,EACnE,MAAO,gCACP,KAAM,WACP,EACD,KAAM,CAAC,CAAE,MAAAA,MAAa,CACpB,KAAM,OACN,GAAGA,EAAM,QAAQ,CACvB,GACI,KAAM,CACJ,EAAG,SACH,KAAM,WACN,QAAS,WACT,KAAM,MACP,EACD,UAAW,CAAC,CAAE,MAAAA,MAAa,CACzB,KAAM,OACN,GAAGA,EAAM,SAAS,EAClB,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,aACP,MAAO,aACP,OAAQ,YACR,OAAQ,aACR,OAAQ,MACR,OAAQ,aACR,OAAQ,aACR,OAAQ,MACR,OAAQ,aACR,OAAQ,aACR,OAAQ,MACR,QAAS,aACT,QAAS,aACT,KAAM,MACZ,GACI,SAAU,CACR,EAAG,IACH,QAAS,GACV,EACD,WAAY,CACV,EAAG,IACH,QAAS,GACV,EACD,WAAY,CACV,KAAM,CACJ,gBACA,YACA,gBACA,qBACA,aACA,SACA,mBACA,QACA,cACA,aACA,sBACA,mBACA,oBACA,oBACD,EACD,MAAO,CAAC,WAAY,UAAW,UAAW,oBAAqB,QAAS,OAAO,EAC/E,KAAM,CACJ,eACA,iBACA,QACA,SACA,WACA,oBACA,gBACA,WACD,CACF,EACD,SAAU,CACR,GAAI,CAAC,UAAW,CAAE,WAAY,MAAM,CAAE,EACtC,GAAI,CAAC,WAAY,CAAE,WAAY,SAAS,CAAE,EAC1C,KAAM,CAAC,OAAQ,CAAE,WAAY,QAAQ,CAAE,EACvC,GAAI,CAAC,WAAY,CAAE,WAAY,SAAS,CAAE,EAC1C,GAAI,CAAC,UAAW,CAAE,WAAY,SAAS,CAAE,EACzC,MAAO,CAAC,SAAU,CAAE,WAAY,MAAM,CAAE,EACxC,MAAO,CAAC,WAAY,CAAE,WAAY,SAAS,CAAE,EAC7C,MAAO,CAAC,UAAW,CAAE,WAAY,QAAQ,CAAE,EAC3C,MAAO,CAAC,OAAQ,CAAE,WAAY,GAAG,CAAE,EACnC,MAAO,CAAC,UAAW,CAAE,WAAY,GAAG,CAAE,EACtC,MAAO,CAAC,SAAU,CAAE,WAAY,GAAG,CAAE,EACrC,MAAO,CAAC,OAAQ,CAAE,WAAY,GAAG,CAAE,EACnC,MAAO,CAAC,OAAQ,CAAE,WAAY,GAAG,CAAE,CACpC,EACD,WAAY,CACV,KAAM,MACN,WAAY,MACZ,MAAO,MACP,OAAQ,MACR,OAAQ,MACR,SAAU,MACV,KAAM,MACN,UAAW,MACX,MAAO,KACR,EACD,IAAK,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EACnC,mBAAoB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EACjD,2BAA4B,CAC1B,KAAM,KACN,KAAM,KACN,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,OAAQ,MACT,EACD,UAAW,CACT,EAAG,IACH,QAAS,MACV,EACD,gBAAiB,CACf,KAAM,OACN,IAAK,cACL,IAAK,cACL,GAAI,gBACL,EACD,aAAc,CACZ,KAAM,OACN,IAAK,cACL,IAAK,cACL,GAAI,gBACL,EACD,WAAY,CACV,KAAM,OACN,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,UAAW,oBACX,UAAW,oBACX,UAAW,oBACX,YAAa,QACd,EACD,cAAe,CACb,KAAM,OACN,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACL,EACD,gBAAiB,CACf,KAAM,OACN,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACL,EACD,QAAS,CACP,KAAM,OACN,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,SAAU,kBACV,YAAa,QACd,EACD,WAAY,CACV,KAAM,OACN,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,GACJ,EACD,aAAc,CACZ,KAAM,OACN,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,GACJ,EACD,oBAAqB,CACnB,KAAM,OACN,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,GAAI,6BACJ,GAAI,6BACJ,GAAI,4BACL,EACD,iBAAkB,CAChB,KAAM,OACN,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,4BACH,EAAG,2BACJ,EACD,OAAQ,CAAC,CAAE,MAAAA,MAAa,CACtB,KAAM,OACN,GAAGA,EAAM,SAAS,EAClB,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,aACP,MAAO,aACP,KAAM,OACN,OAAQ,QACR,IAAK,cACL,IAAK,cACL,IAAK,aACX,GACI,UAAW,CACT,EAAG,OACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,IAAK,QACN,EACD,MAAO,CAAC,CAAE,MAAAA,MAAa,CACrB,KAAM,OACN,GAAGA,EAAM,SAAS,EAClB,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,KAAM,MACZ,GACI,OAAQ,CACN,EAAG,IACH,QAAS,MACV,EACD,UAAW,CACT,KAAM,CACJ,GAAI,CACF,UAAW,gBACZ,CACF,EACD,KAAM,CACJ,YAAa,CACX,UAAW,WACX,QAAS,GACV,CACF,EACD,MAAO,CACL,MAAO,CACL,QAAS,IACV,CACF,EACD,OAAQ,CACN,WAAY,CACV,UAAW,mBACX,wBAAyB,yBAC1B,EACD,MAAO,CACL,UAAW,OACX,wBAAyB,yBAC1B,CACF,CACF,EACD,cAAe,CACb,QAAS,UACT,MAAO,WACP,OAAQ,MACR,KAAM,UACN,MAAO,SACP,OAAQ,OACT,EACD,WAAY,CACV,KAAM,IACN,MAAO,OACP,KAAM,QACN,OAAQ,MACR,QAAS,QACT,MAAO,IACP,EAAG,SACH,EAAG,OACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,OACH,EAAG,UACH,GAAI,QACL,EACD,cAAe,CACb,KAAM,OACN,KAAM,OACN,QAAS,SACV,EACD,eAAgB,CACd,KAAM,MACP,EACD,OAAQ,CAAC,CAAE,MAAAA,MAAa,CACtB,KAAM,OACN,GAAGA,EAAM,SAAS,CACxB,GACI,UAAW,CACT,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,GACJ,EACD,UAAW,CAAC,CAAE,MAAAA,MAAa,CACzB,GAAGA,EAAM,SAAS,EAClB,KAAM,OACN,KAAM,OACN,OAAQ,QACR,IAAK,cACL,IAAK,cACL,IAAK,aACX,GACI,SAAU,CAAC,CAAE,MAAAA,EAAO,YAAAV,MAAmB,CACrC,KAAM,OACN,EAAG,OACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,KAAM,OACN,IAAK,cACL,IAAK,cACL,IAAK,cACL,MAAO,OACP,GAAGA,EAAYU,EAAM,SAAS,CAAC,CACrC,GACI,UAAW,CACT,EAAG,MACH,KAAM,OACN,OAAQ,QACR,IAAK,cACL,IAAK,cACL,IAAK,aACN,EACD,SAAU,CACR,EAAG,MACH,KAAM,OACN,IAAK,cACL,IAAK,cACL,IAAK,aACN,EACD,eAAgB,CACd,OAAQ,SACR,OAAQ,SACR,KAAM,OACN,cAAe,cACf,WAAY,WACZ,MAAO,QACP,eAAgB,eAChB,YAAa,YACb,IAAK,KACN,EACD,QAAS,CACP,EAAG,IACH,EAAG,OACH,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,IAAK,GACN,EACD,MAAO,CACL,MAAO,QACP,KAAM,OACN,KAAM,IACN,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,IACL,EACD,aAAc,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAC3C,cAAe,CACb,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,aAAc,CACZ,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,QAAS,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EACvC,iBAAkB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAC/C,mBAAoB,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EAClD,UAAW,CAAC,CAAE,MAAAA,MAAa,CACzB,QAASA,EAAM,kBAAmB,SAAS,EAC3C,GAAGA,EAAM,QAAQ,CACvB,GACI,gBAAiB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAC9C,gBAAiB,CACf,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,YAAa,CAAC,CAAE,MAAAA,MAAa,CAC3B,QAAS,MACT,GAAGA,EAAM,SAAS,CACxB,GACI,UAAW,CACT,QAAS,MACT,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,OAAQ,CACN,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,OACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,IAAK,QACN,EACD,SAAU,CACR,EAAG,IACH,GAAI,KACJ,IAAK,IACL,IAAK,MACL,IAAK,GACN,EACD,MAAO,CACL,EAAG,IACH,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,IAAK,IACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,KACN,EACD,QAAS,CACP,GAAI,QACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,MAAO,QACR,EACD,aAAc,CAAC,CAAE,MAAAA,MAAa,CAC5B,GAAGA,EAAM,SAAS,CACxB,GACI,cAAe,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EAC7C,MAAO,CACL,EAAG,IACH,QAAS,MACV,EACD,KAAM,CACJ,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,OACH,GAAI,OACL,EACD,MAAO,CAAC,CAAE,MAAAA,MAAa,CACrB,GAAGA,EAAM,SAAS,CACxB,GACI,QAAS,CACP,GAAI,MACJ,EAAG,MACH,GAAK,WACL,EAAG,UACH,IAAK,WACL,EAAG,SACH,IAAK,WACL,EAAG,UACH,IAAK,WACL,EAAG,OACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,OACH,EAAG,UACH,GAAI,SACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACL,EACD,OAAQ,CAAC,CAAE,MAAAA,MAAa,CACtB,KAAM,OACN,GAAGA,EAAM,QAAQ,CACvB,GACI,YAAa,CACX,EAAG,IACH,EAAG,IACH,EAAG,GACJ,EACD,SAAU,CAAE,EACZ,KAAM,CAAE,EACR,UAAW,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EACxC,oBAAqB,CAAC,CAAE,MAAAA,KAAYA,EAAM,QAAQ,EAClD,wBAAyB,CACvB,KAAM,OACN,YAAa,YACb,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,WAAY,CAAC,CAAE,MAAAA,MAAa,CAC1B,GAAGA,EAAM,SAAS,CACxB,GACI,YAAa,CAAC,CAAE,MAAAA,KAAYA,EAAM,SAAS,EAC3C,oBAAqB,CACnB,KAAM,OACN,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,KACJ,EACD,gBAAiB,CACf,OAAQ,SACR,IAAK,MACL,YAAa,YACb,MAAO,QACP,eAAgB,eAChB,OAAQ,SACR,cAAe,cACf,KAAM,OACN,WAAY,UACb,EACD,gBAAiB,CACf,EAAG,KACH,GAAI,OACJ,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAM,QACP,EACD,mBAAoB,CAClB,QAAS,QACT,EAAG,KACH,GAAI,OACJ,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAM,QACP,EACD,mBAAoB,CAClB,KAAM,OACN,IAAK,MACL,QACE,sIACF,OAAQ,6EACR,QAAS,UACT,OAAQ,aACR,UAAW,WACZ,EACD,yBAA0B,CACxB,QAAS,+BACT,OAAQ,SACR,GAAI,6BACJ,IAAK,6BACL,SAAU,8BACX,EACD,UAAW,CAAC,CAAE,MAAAA,MAAa,CACzB,GAAGA,EAAM,SAAS,EAClB,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,KAAM,MACZ,GACI,MAAO,CAAC,CAAE,MAAAA,MAAa,CACrB,KAAM,OACN,GAAGA,EAAM,SAAS,EAClB,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,aACP,MAAO,aACP,MAAO,MACP,MAAO,aACP,MAAO,aACP,OAAQ,YACR,OAAQ,aACR,OAAQ,MACR,OAAQ,aACR,OAAQ,aACR,OAAQ,MACR,OAAQ,aACR,OAAQ,aACR,OAAQ,MACR,QAAS,aACT,QAAS,aACT,KAAM,OACN,OAAQ,QACR,IAAK,cACL,IAAK,cACL,IAAK,aACX,GACI,WAAY,CACV,KAAM,OACN,OAAQ,kBACR,SAAU,WACV,UAAW,WACZ,EACD,OAAQ,CACN,KAAM,OACN,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACL,CACF,EACD,QAAS,CAAE,CACb,eC79BA,OAAO,eAAwBtS,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOwU,CACV,CACL,CAAC,EACD,MAAMC,EAA4BtT,EAAyBC,EAAqC,EAC1FwC,EAAgBd,GACtB,SAAS3B,EAAyBE,EAAK,CACnC,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CACjC,QAASA,CACjB,CACC,CACD,SAASmT,EAAcxR,EAAQ,CAC3B,IAAI0R,EACJ,MAAMlB,IAAYkB,EAAkB1R,GAAW,KAA4B,OAASA,EAAO,WAAa,MAAQ0R,IAAoB,OAASA,EAAkB,CAC3JD,EAAY,OACf,GAAE,MAAK,EAAG,UAAU,QAASE,GAASH,EAAcG,aAAkB,SAAWA,IAAWA,CAAM,CAAC,EAC9FC,EAAW,CAEb,+BAAgC,CAC5B,MAAO,CACH,UAAW,CAAC,CAAE,MAAAtC,MAAY,CAClB,QAAS,YACT,GAAGA,EAAM,QAAQ,CACzC,EACa,CACJ,EACD,sCAAuC,CACnC,YAAa,CACT,kBAAmB,GACnB,cAAe,GACf,cAAe,GACf,mBAAoB,GACpB,YAAa,GACb,YAAa,EAChB,CACJ,CACT,EACUuC,EAAgB,OAAO,KAAKD,CAAQ,EAAE,OAAQE,MAAclR,EAAc,aAAaZ,EAAQ8R,CAAO,CAAC,EAAE,IAAKA,GAAUF,EAASE,CAAO,CAAC,EAC/I,MAAO,CACH9R,EACA,GAAG6R,EACH,GAAGrB,CACX,CACA,oBChDA,OAAO,eAAwBxT,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOkQ,CACV,CACL,CAAC,EACD,MAAM6E,EAA+B5T,EAAyBC,EAAgC,EACxF4T,EAA+B7T,EAAyB2B,EAAgC,EAC9F,SAAS3B,EAAyBE,EAAK,CACnC,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CACjC,QAASA,CACjB,CACC,CACD,SAAS6O,KAAiBsD,EAAS,CAC/B,GAAI,CAAG,CAAA,GAAGyB,CAAc,KAAQD,EAAe,SAASxB,EAAQ,CAAC,CAAC,EAClE,SAAWuB,EAAe,SAAS,CAC/B,GAAGvB,EACH,GAAGyB,CACX,CAAK,CACL,OCvBA,IAAI/E,GAAgB9O,GACpB,IAAA8T,IAAkBhF,GAAc,WAAaA,GAAgB,CAAE,QAASA,EAAa,GAAI,wBCDzF,IAAItE,GAASxK,GACb,IAAA+T,GAAkBvJ,GAAO,WAAaA,GAAS,CAAE,QAASA,KAAU,QCC7D,MAAMwJ,GAAc,CACzB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EAEMC,EAAe,CACnB,UAAWC,EAAe,MAC1B,QAASC,EAAe,MACxB,MAAOC,EAAe,KACtB,KAAMC,EAAe,KACrB,QAASC,EAAe,KACxB,QAASC,EAAe,IACxB,MAAOP,EACT,EAEaQ,GAAe,CAC1B,GAAGP,EAEH,QAASA,EAAa,QAAQ,GAAK,EACnC,iBAAkBA,EAAa,QAAQ,GAAK,EAC5C,kBAAmBA,EAAa,QAAQ,GAAK,EAE7C,QAASA,EAAa,QAAQ,GAAK,EACnC,iBAAkBA,EAAa,QAAQ,GAAK,EAC5C,kBAAmBA,EAAa,QAAQ,GAAK,EAE7C,MAAOA,EAAa,MAAM,GAAK,EAC/B,eAAgBA,EAAa,MAAM,GAAK,EACxC,gBAAiBA,EAAa,MAAM,GAAK,EAEzC,KAAMA,EAAa,KAAK,GAAK,EAC7B,cAAeA,EAAa,KAAK,GAAK,EACtC,eAAgBA,EAAa,KAAK,GAAK,EAEvC,QAASA,EAAa,QAAQ,GAAK,EACnC,iBAAkBA,EAAa,QAAQ,GAAK,EAC5C,kBAAmBA,EAAa,QAAQ,GAAK,EAE7C,UAAWQ,EAAe,MAAM,GAAK,EACrC,aAAcA,EAAe,MAAM,GAAK,EACxC,QAASA,EAAe,MAAM,EAAI,EAClC,WAAYP,EAAe,KAC7B,EChDaQ,GAAa5F,GDkDX,CACb,OAAQ,KACR,YAAa,CACX,UAAW,EACb,EACA,QAAS,CAAC,6BAA6B,EACvC,MAAO,CACL,OAAQ,CACN,OAAQ0F,GACR,SAAU,CACR,OAAQ,eACR,OAAQ,gBACR,OAAQ,MACR,OAAQ,gBACR,OAAQ,gBACR,OAAQ,MACR,OAAQ,gBACR,OAAQ,gBACR,OAAQ,MACR,QAAS,gBACT,QAAS,gBACT,QAAS,MACX,CACF,EACA,SAAU,CACR,GAAI,UACJ,GAAI,WACJ,KAAM,OACN,GAAI,WACJ,GAAI,UACJ,MAAO,SACP,MAAO,WACP,MAAO,UACP,MAAO,OACP,MAAO,UACP,MAAO,SACP,MAAO,OACP,MAAO,MACT,CACF,EACA,QAAS,CAAC,EACV,SAAU,CACR,CACE,QAAS,kBACT,SAAU,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,CACzC,EACA,CACE,QAAS,SACT,SAAU,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,CACzC,EACA,CACE,QAAS,yCACT,SAAU,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,CACzC,EACA,CACE,QAAS,gCACT,SAAU,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,CACzC,EACA,CACE,QAAS,0BACT,SAAU,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,CACzC,EACA,CACE,QAAS,6CACX,EACA,CACE,QAAS,4CACX,EACA,CACE,QACE,oEACF,SAAU,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,CACzC,EACA,CACE,QACE,4EACJ,CACF,CACF,CChIsD,EAEzCG,GAAYD,GAAW,MAAM,SAE7BE,GAASF,GAAW,MAAM,OAE1BG,GAAa,CACxB1W,EAAK,IACLA,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,EACP,EAEa2W,GAAc,CACzB3W,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,KAAK,CACZ,EAEa4W,GAAY,CACvB5W,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,KACLA,EAAK,GACLA,EAAK,GACLA,EAAK,KAAK,EACVA,EAAK,KAAK,EACVA,EAAK,KAAK,EACVA,EAAK,KAAK,EACVA,EAAK,KAAK,EACVA,EAAK,KAAK,EACVA,EAAK,KAAK,EACVA,EAAK,KAAK,CACZ,EAEa6W,GAAc,CACzB5W,EAAU,QACVA,EAAU,MACVA,EAAU,KACVA,EAAU,QACVA,EAAU,QACVA,EAAU,OACZ,EAEa6W,GAAS,CACpB,OACA,QACA,QACA,aACA,UACA,UACA,aACA,UACA,iBACA,cACF,EC5DeC,GAAA3W,EAAI,OAAO,CACxB,KAAM,QACN,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAASH,EAAU,OACrB,EACA,KAAM,CACJ,KAAM,OACN,QAASD,EAAK,EAChB,CACF,EACA,SAAU,CACR,OAA8B,CAC5B,OAAO4W,GAAU,OAAO,CAACI,EAAK7S,KACrB,CACL,GAAG6S,EACH,CAAC7S,CAAC,EAAG,UAAUA,CAAC,EAAA,GAEjB,CAAE,CAAA,CACP,EACA,aAAwB,SAChB,MAAA7D,EAAc,KAAK,MAAM,KAAK,IAAI,GAAK,KAAK,MAAMN,EAAK,EAAE,EACzDiX,EAAc,KAClBC,GAAAC,EAAA,KAAK,OAAL,YAAAA,EAAW,MAAM,OAAjB,YAAAD,EAAuB,QAAS,EAAI,KAAK,KAAO,SAAS,KAAK,IAAI,EACpE,GAGO,MAAA,CACL,+DAHY,KAAK,MAKjBD,EACA3W,CAAA,CAEJ,CACF,CACF,CAAC,mLCxCc8W,GAAAhX,EAAI,OAAO,CACxB,KAAM,WACN,MAAO,CACL,KAAM,CACJ,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,kBAAmB,CACjB,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,GACX,EACA,KAAM,CACJ,KAAM,OACN,QAASJ,EAAK,IAChB,EACA,QAAS,CACP,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,CACX,CACF,EACA,MAAO,CACE,MAAA,CACL,MAAOwW,GACP,OAAQC,EAAA,CAEZ,EACA,SAAU,CACR,cAAuB,CACrB,OAAO,KAAK,MAAMzW,EAAK,KAAK,IAAI,CAAC,GAAK,KAAK,MAAQ,KAAK,MAAMA,EAAK,IAAI,CACzE,EACA,MAA+C,CAC7C,IAAIqX,EAAO,CACT,QAAS,KAAK,OAAO,MAAM,GAAG,EAC9B,UAAW,KAAK,OAAO,QAAQ,GAAG,CAAA,EAGpC,OAAI,KAAK,MAAQ,CAAC,KAAK,QACdA,EAAA,CACL,QAAS,KAAK,OAAO,QAAQ,GAAG,EAChC,UAAW,KAAK,OAAO,QAAQ,GAAG,CAAA,GAIlC,CAAC,KAAK,MAAQ,KAAK,QACdA,EAAA,CACL,QAAS,KAAK,OAAO,MAAM,GAAG,EAC9B,UAAW,KAAK,OAAO,QAAQ,GAAG,CAAA,GAIlC,CAAC,KAAK,MAAQ,CAAC,KAAK,QACfA,EAAA,CACL,QAAS,KAAK,OAAO,QAAQ,GAAG,EAChC,UAAW,KAAK,OAAO,QAAQ,GAAG,CAAA,GAI/BA,CACT,CACF,EACA,QAAS,CACP,gBAAgBxD,EAAe,CACvB,MAAAyD,EACJ,OAAO,KAAK,mBAAsB,SAC9B,OAAO,SAAS,KAAK,iBAAiB,EACtC,KAAK,kBAEJ,MAAA,CACL,kBAAmB,GAAG,KAAK,iBAAiB,KAC5C,eAAgB,GAAIzD,EAAQ,GAAMyD,CAAiB,KACnD,KAAM,GAAG,KAAK,KAAKzD,EAAQ,IAAM,EAAI,UAAY,WAAW,CAAC,EAAA,CAEjE,CACF,CACF,CAAC,61FC/Ec0D,GAAAnX,EAAI,OAAO,CACxB,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,MACX,EACA,aAAc,CACZ,KAAM,OACN,QAAS,MACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,MACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,gBAA0C,CACjC,MAAA,CACL,CAAC,aAAa,KAAK,OAAO,EAAE,EAAG,CAAC,CAAC,KAAK,QACtC,CAAC,gBAAgB,KAAK,SAAS,EAAE,EAAG,CAAC,CAAC,KAAK,UAC3C,CAAC,gBAAgB,KAAK,SAAS,EAAE,EAAG,CAAC,CAAC,KAAK,UAC3C,CAAC,gBAAgB,KAAK,SAAS,EAAE,EAAG,CAAC,CAAC,KAAK,UAC3C,CAAC,gBAAgB,KAAK,SAAS,EAAE,EAAG,CAAC,CAAC,KAAK,UAC3C,CAAC,gBAAgB,KAAK,SAAS,EAAE,EAAG,CAAC,CAAC,KAAK,SAAA,CAE/C,EACA,YAAsC,CAC7B,MAAA,CACL,GAAI,KAAK,MAAQ,CAAE,CAAC,WAAW,KAAK,KAAK,EAAE,EAAG,EAAK,EAAI,CAAC,EACxD,GAAI,KAAK,aACL,CAAE,CAAC,aAAa,KAAK,YAAY,EAAE,EAAG,EAAK,EAC3C,CAAC,EACL,GAAI,KAAK,UAAY,CAAG,oBAAsB,EAAK,EAAI,CAAC,EACxD,GAAG,KAAK,cAAA,CAEZ,CACF,CACF,CAAC,uOC7DcoX,GAAApX,EAAI,OAAO,CACxB,MAAO,CACL,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,KAAM,CACJ,KAAM,CAAC,QAAS,OAAQ,MAAM,EAC9B,QAAS,MACX,EACA,GAAI,CACF,KAAM,CAAC,QAAS,OAAQ,MAAM,EAC9B,QAAS,MACX,EACA,GAAI,CACF,KAAM,CAAC,QAAS,OAAQ,MAAM,EAC9B,QAAS,MACX,EACA,OAAQ,CACN,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACX,EACA,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACX,EACA,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACX,EACA,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACX,EACA,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACX,EACA,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACX,EACA,GAAI,CACF,KAAM,CAAC,QAAS,OAAQ,MAAM,EAC9B,QAAS,MACX,EACA,GAAI,CACF,KAAM,CAAC,QAAS,OAAQ,MAAM,EAC9B,QAAS,MACX,EACA,GAAI,CACF,KAAM,CAAC,QAAS,OAAQ,MAAM,EAC9B,QAAS,MACX,CACF,EACA,SAAU,CACR,YAAsC,CAC7B,MAAA,CAEL,GAAI,KAAK,UAAY,CAAE,CAAC,UAAU,KAAK,SAAS,EAAE,EAAG,EAAK,EAAI,CAAC,EAG/D,CAAC,KAAK,YAAY,MAAO,KAAK,EAAE,CAAC,EAAG,KAAK,eAAe,KAAK,EAAE,EAC/D,CAAC,KAAK,YAAY,MAAO,KAAK,EAAE,CAAC,EAAG,KAAK,eAAe,KAAK,EAAE,EAC/D,CAAC,KAAK,YAAY,MAAO,KAAK,EAAE,CAAC,EAAG,KAAK,eAAe,KAAK,EAAE,EAC/D,CAAC,KAAK,YAAY,MAAO,KAAK,EAAE,CAAC,EAAG,KAAK,eAAe,KAAK,EAAE,EAC/D,CAAC,KAAK,YAAY,OAAQ,KAAK,EAAE,CAAC,EAAG,KAAK,eAAe,KAAK,EAAE,EAChE,CAAC,KAAK,YAAY,GAAI,KAAK,IAAI,CAAC,EAAG,KAAK,eAAe,KAAK,KAAM,EAAI,EAGtE,oCAAqC,KAAK,KAAO,IAAM,KAAK,KAAO,KACnE,oCAAqC,KAAK,KAAO,IAAM,KAAK,KAAO,KACnE,oCAAqC,KAAK,KAAO,IAAM,KAAK,KAAO,KACnE,oCAAqC,KAAK,KAAO,IAAM,KAAK,KAAO,KACnE,oCAAqC,KAAK,KAAO,IAAM,KAAK,KAAO,KACnE,6BAA8B,KAAK,OAAS,IAAM,KAAK,OAAS,KAGhE,CAAC,cAAc,KAAK,EAAE,mBAAmB,KAAK,EAAE,KAAK,EACnD,KAAK,sBAAsB,KAAK,EAAE,EACpC,CAAC,cAAc,KAAK,EAAE,mBAAmB,KAAK,EAAE,KAAK,EACnD,KAAK,sBAAsB,KAAK,EAAE,EACpC,CAAC,cAAc,KAAK,EAAE,mBAAmB,KAAK,EAAE,KAAK,EACnD,KAAK,sBAAsB,KAAK,EAAE,EACpC,CAAC,cAAc,KAAK,EAAE,mBAAmB,KAAK,EAAE,KAAK,EACnD,KAAK,sBAAsB,KAAK,EAAE,EACpC,CAAC,cAAc,KAAK,EAAE,mBAAmB,KAAK,EAAE,KAAK,EACnD,KAAK,sBAAsB,KAAK,EAAE,EACpC,CAAC,WAAW,KAAK,IAAI,gBAAgB,KAAK,IAAI,KAAK,EACjD,KAAK,sBAAsB,KAAK,IAAI,EAGtC,CAAC,eAAe,KAAK,QAAQ,EAAE,EAAG,KAAK,WAAa,OACpD,CAAC,eAAe,KAAK,QAAQ,EAAE,EAAG,KAAK,WAAa,OACpD,CAAC,eAAe,KAAK,QAAQ,EAAE,EAAG,KAAK,WAAa,OACpD,CAAC,eAAe,KAAK,QAAQ,EAAE,EAAG,KAAK,WAAa,OACpD,CAAC,eAAe,KAAK,QAAQ,EAAE,EAAG,KAAK,WAAa,OACpD,CAAC,YAAY,KAAK,MAAM,EAAE,EAAG,KAAK,SAAW,MAAA,CAEjD,CACF,EACA,QAAS,CACP,YAAYoT,EAAgB7S,EAAkC,CAKrD,MAAA,GAAG6S,CAAM,WAJF7S,IAAU,OAAS,OAAS,GAIV,IAAI6S,CAAM,SAH7B7S,IAAU,OAAS,KAAO,EAGgB,IAAI6S,CAAM,OAFnD7S,IAAU,OAAS,OAAS,MAEmC,EAC/E,EACA,eACE8W,EACAC,EAAkB,GAClB,CACA,OACED,IAAS,QACTA,IAAS,GACTA,IAAS,KACRC,GAAmB,CAACD,CAEzB,EACA,sBAAsBA,EAA6C,CAC3D,MAAAE,EAAI,OAAO,SAASF,CAAc,EAEjC,OAAAA,IAAS,QAAU,CAAC,MAAME,CAAC,GAAKA,GAAK,GAAKA,EAAI,EACvD,CACF,CACF,CAAC,gMClIM,SAASC,IAAe,CACtB,MAAA,CAAC,EACN,SAAS,mBACT,SAAS,sBACT,SAAS,yBACT,SAAS,oBAEb,CAEO,SAASC,GAAeC,EAAsB,CACnD,GAAIF,KACF,OAAO,IAAI,QAASG,GAAYA,EAAS,CAAA,EAG3C,GAAID,EAAQ,kBACV,OAAOA,GAAA,YAAAA,EAAS,oBAClB,GAAWA,EAAQ,qBACjB,OAAOA,GAAA,YAAAA,EAAS,uBAClB,GAAWA,EAAQ,wBACjB,OAAOA,GAAA,YAAAA,EAAS,0BAClB,GAAWA,EAAQ,oBACjB,OAAOA,GAAA,YAAAA,EAAS,qBAEpB,CAEO,SAASE,IAAiB,CAC3B,GAAA,CAACJ,KACH,OAAO,IAAI,QAASG,GAAYA,EAAS,CAAA,EAG3C,GAAI,SAAS,eACX,OAAO,SAAS,iBAClB,GAAW,SAAS,oBAClB,OAAO,SAAS,sBAClB,GAAW,SAAS,uBAClB,OAAO,SAAS,yBAClB,GAAW,SAAS,iBAClB,OAAO,SAAS,kBAEpB,CC5BA,MAAME,GAAuB,IAAI,KAAK,aAAa,OAAW,CAC5D,qBAAsB,CACxB,CAAC,EAGYC,GAAsB,CACjC,OACA,QACA,QACA,aACA,UACA,UACA,aACA,UACA,iBACA,eACA,OACF,EAEMC,GAAkBC,GAAiB,CACvC,MAAMC,EAAU,KAAK,MAAMD,EAAO,EAAE,EAC9BE,EAAU,KAAK,MAAMF,EAAO,EAAE,EAAI,GAClCG,EAAQ,KAAK,MAAMH,EAAO,IAAI,EACpC,OAAIG,IAAU,EACL,GAAGD,CAAO,IAAIL,GAAqB,OAAOI,CAAO,CAAC,GAElD,GAAGE,CAAK,IAAIN,GAAqB,OACtCK,CACD,CAAA,IAAIL,GAAqB,OAAOI,CAAO,CAAC,EAE7C,EAEeG,GAAApY,EAAI,OAAO,CACxB,KAAM,cACN,WAAY,CACV,SAAAqY,EACF,EACA,MAAO,CACL,QAAS,CACP,KAAM,CAAC,MAAO,MAAM,EACpB,SAAU,EACZ,EACA,eAAgB,CACd,KAAM,OACN,QAAS,KAAO,CAAA,EAClB,EACA,aAAc,CACZ,KAAM,OACN,QAAS,KAAO,CAAA,EAClB,CACF,EACA,MAAO,CACE,MAAA,CACL,QAAS,GACT,iBAAkB,EAClB,YAAa,OACb,SAAU,EACV,cAAe,EACf,YAAa,OACb,SAAU,EACV,YAAa,GACb,UAAW,GACX,aAAc,GACd,WAAY,GACZ,UAAW,GACX,QAAS,EAAA,CAEb,EACA,SAAU,CACR,aAAc,CACZ,OACE,MAAM,QAAQ,KAAK,OAAO,EAAI,KAAK,QAAU,CAAC,CAAE,IAAK,KAAK,OAAS,CAAA,CAEvE,EACA,sBAAgC,CAE3B,OAAA,KAAK,YAAc,KAAK,UAAY,KACrC,CAAC,KAAK,WACN,CAAC,KAAK,SAAS,CAEnB,EACA,cAAe,CACb,MAAMC,EAAe,KAAK,aAEnB,OAAAA,GAAA,YAAAA,EAAc,YAAa,GAAQ,OAAS,EACrD,CACF,EACA,SAAU,CACR,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,8BAA8B,CACrC,EACA,WAAY,CACV,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,0BAA0B,CACjC,EAEA,QAAS,CACP,gBAAiB,CACf,KAAK,QAAU,GACf,KAAK,UAAY,GACjB,KAAK,QAAU,EACjB,EACA,YAAa,CACSR,GAAA,QAASS,GAAU,CACrC,KAAK,eAAeA,CAAK,CAAA,CAC1B,CACH,EACA,cAAe,CACOT,GAAA,QAASS,GAAU,CACrC,KAAK,iBAAiBA,CAAK,CAAA,CAC5B,CACH,EACA,eAAeC,EAAe,CACtB,MAAAC,EAAS,KAAK,MAAM,OACpBC,EAAoB,KAAK,MAAM,kBAC9BD,EAAA,iBACLD,EACCD,GAAU,CACLC,IAAU,eACP,KAAA,YAAcT,GAAeU,EAAO,QAAQ,GAG/CD,IAAU,eACZ,KAAK,iBAAoBC,EAAO,YAAcA,EAAO,SAAY,IACjEC,EAAkB,MAAM,YACtB,sBACA,KAAK,iBAAiB,SAAS,CAAA,GAInC,KAAK,MAAMF,EAAO,CAAE,MAAAD,EAAO,OAAQ,KAAM,CAC3C,EACA,EAAA,CAEJ,EACA,iBAAiBC,EAAe,CACxB,MAAAC,EAAS,KAAK,MAAM,OACpBC,EAAoB,KAAK,MAAM,kBAC9BD,EAAA,iBACLD,EACCD,GAAU,CACLC,IAAU,eACP,KAAA,YAAcT,GAAeU,EAAO,QAAQ,GAG/CD,IAAU,eACZ,KAAK,iBAAoBC,EAAO,YAAcA,EAAO,SAAY,IACjEC,EAAkB,MAAM,YACtB,sBACA,KAAK,iBAAiB,SAAS,CAAA,GAInC,KAAK,MAAMF,EAAO,CAAE,MAAAD,EAAO,OAAQ,KAAM,CAC3C,EACA,EAAA,CAEJ,EACA,kBAAmB,CACX,MAAAI,EAAY,KAAK,MAAM,OACxBA,IAGDA,EAAU,UACZ,KAAK,WAAW,EAAI,EAEb,SAAA,iBAAiB,UAAW,KAAK,yBAAyB,EAC1D,SAAA,iBAAiB,UAAW,KAAK,aAAa,EACzD,EACA,eAAgB,CACP,OAAA,oBAAoB,UAAW,KAAK,aAAa,EAC/C,SAAA,oBAAoB,UAAW,KAAK,yBAAyB,CACxE,EACA,2BAA4B,CAExB,SAAS,mBACT,SAAS,yBACT,SAAS,sBACT,SAAS,qBAEA,SAAA,oBACP,mBACA,KAAK,sBAAA,EAEE,SAAA,oBACP,yBACA,KAAK,sBAAA,EAEE,SAAA,oBACP,sBACA,KAAK,sBAAA,EAEE,SAAA,oBACP,qBACA,KAAK,sBAAA,GAGP,QAAQ,IAAI,kDAAkD,CAElE,EACA,+BAAgC,CAE5B,SAAS,mBACT,SAAS,yBACT,SAAS,sBACT,SAAS,qBAEA,SAAA,iBACP,mBACA,KAAK,sBAAA,EAEE,SAAA,iBACP,yBACA,KAAK,sBAAA,EAEE,SAAA,iBACP,sBACA,KAAK,sBAAA,EAEE,SAAA,iBACP,qBACA,KAAK,sBAAA,GAGP,QAAQ,IAAI,kDAAkD,CAElE,EACA,wBAAyB,CACvB,KAAK,aACH,SAAS,mBACT,SAAS,sBACT,SAAS,yBACT,SAAS,qBACR,OAAO,YAAc,OAAO,OAC3B,OAAO,aAAe,OAAO,MACnC,EAEA,UAAW,CAGT,OAFe,KAAK,MAAM,OAEZ,IAChB,EACA,0BAA0B,EAAe,CACnC,KAAK,aACP,KAAK,gBAAgB,CAAC,CAE1B,EACA,aAAc,CACZ,KAAK,WAAa,GAClB,KAAK,QAAU,EACjB,EACA,eAAgB,CACd,KAAK,UAAY,EACnB,EACA,MAAO,CACC,MAAAA,EAAY,KAAK,MAAM,OAC7B,GAAI,CAACA,EACH,OAEkBA,EAAU,SACV,QAEfA,EAAA,KAAA,EACA,KAAK,IAAM,KAAK,WAAW,EAAI,CAAC,EAChC,MAAM,QAAQ,KAAK,CAE1B,EACA,OAAQ,CACA,MAAAA,EAAY,KAAK,MAAM,OACxBA,IAGLA,EAAU,MAAM,EAChB,KAAK,WAAW,EAAK,EACvB,EACA,YAAa,CACP,KAAK,QACP,KAAK,MAAM,EAEX,KAAK,KAAK,CAEd,EACA,WAAWC,EAAgB,CACzB,KAAK,QAAUA,CACjB,EACA,iBAAiBrO,EAAoB,CAC7B,MAAAoO,EAAY,KAAK,MAAM,OAC7B,GAAI,CAACA,EACH,OAEI,MAAAE,EAAetO,EAAa,IAAOoO,EAAU,SACnDA,EAAU,YAAcE,CAC1B,EACA,sBAAsBZ,EAAiB,CAErC,MAAO,CAAC,SAAUA,EAAU,GAAM,GAAI,EAAE,EAAG,SAASA,EAAU,GAAI,EAAE,CAAC,EAClE,KAAK,GAAG,EACR,QAAQ,YAAa,KAAK,CAC/B,EAEA,qBAAsB,CAChB,SAAS,oBACIL,GAAA,EAAE,KAAK,IAAM,CAC1B,KAAK,aAAe,GACpB,QAAQ,IAAI,mBAAmB,CAAA,CAChC,EAED,KAAK,aAAe,GAExB,EACA,oBAAqB,CACb,MAAAF,EAAU,KAAK,MAAM,eACvBA,IACaD,GAAAC,CAAO,EAAE,KAAK,IAAM,CACjC,KAAK,aAAe,EAAA,CACrB,EACD,KAAK,aAAe,GAExB,EACA,sBAAuB,CACjB,KAAK,aACP,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,CAE5B,EAEA,aAAc,CACN,MAAAe,EAAS,KAAK,MAAM,OACrB,KAAA,YAAcV,GAAeU,EAAO,QAAQ,EACjD,KAAK,cAAgBA,EAAO,QAC9B,EACA,kBAAmB,CACX,MAAAA,EAAS,KAAK,MAAM,OACpBC,EAAoB,KAAK,MAAM,kBACjC,GAAA,CAACD,GAAU,CAACC,EACd,OAEG,KAAA,YAAcX,GAAeU,EAAO,WAAW,EACpD,KAAK,SAAWA,EAAO,YACvB,MAAMK,EAAU,OAAO,KAAK,QAAQ,EAAI,OAAO,KAAK,aAAa,EACjEJ,EAAkB,MAAM,YACtB,sBACAI,EAAQ,SAAS,CAAA,CAErB,EACA,qBAAqB,EAAe,CAC5B,MAAAL,EAAS,KAAK,MAAM,OAC1B,GAAI,CAAC,SAAS,KAAK,SAASA,CAAM,EAChC,OAEI,MAAAC,EAAoB,KAAK,MAAM,kBAC/BK,EAAOL,EAAkB,wBACzBI,EACJ,KAAK,IAAI,KAAK,IAAI,EAAG,EAAE,EAAIC,EAAK,CAAC,EAAGA,EAAK,KAAK,EAAIA,EAAK,MACzDL,EAAkB,MAAM,YACtB,qBACAI,EAAQ,SAAS,CAAA,EAEf,KAAK,cACP,EAAE,eAAe,EACjBJ,EAAkB,MAAM,YACtB,sBACAI,EAAQ,SAAS,CAAA,EAGvB,EACA,KAAKE,EAAW,EAAG,CACX,MAAAP,EAAS,KAAK,MAAM,OAE1BA,EAAO,aAAeO,CACxB,EACA,MAAM,gBAAgB,EAAe,CAC7B,MAAAN,EAAoB,KAAK,MAAM,kBAC/BO,EAAiB,KAAK,MAAM,eAC5BR,EAAS,KAAK,MAAM,OAC1B,GAAI,CAACA,EACH,OAEI,MAAAM,EAAOL,EAAkB,wBACzBI,EACJ,KAAK,IAAI,KAAK,IAAI,EAAG,EAAE,EAAIC,EAAK,CAAC,EAAGA,EAAK,KAAK,EAAIA,EAAK,MAGzD,GAFK,KAAA,aAAe,EAAE,QAAU,KAAO,EACvCE,EAAe,UAAU,OAAO,YAAa,KAAK,WAAW,EACzD,KAAK,YAAa,CACpB,KAAK,UAAYR,EAAO,OACxB,MAAMA,EAAO,QACb,KAAK,qBAAqB,CAAC,EAE3B,MACF,CAGA,GAFK,KAAA,SAAWK,EAAU,KAAK,cACxBL,EAAA,YAAcK,EAAU,KAAK,cAChC,KAAK,UACP,OAEI,MAAAI,EAAcT,EAAO,OAEvBS,IAAgB,QAEfA,EAAA,KAAK,IAAM,KAAK,qBAAqB,CAAC,CAAC,EACvC,MAAM,QAAQ,KAAK,CAE1B,EAEA,cAAc,EAAkB,OAC9B,MAAMC,GAAUpC,EAAA,SAAS,gBAAT,YAAAA,EAAwB,QAAQ,cAChD,GAAIoC,IAAY,QAGR,OAAA,EAAE,IAAI,YAAe,EAAA,CAC3B,IAAK,IACH,GAAIA,IAAY,SACd,OAEF,KAAK,WAAW,EAChB,MACF,IAAK,IACH,KAAK,WAAW,EAChB,MACF,IAAK,SACH,EAAE,eAAe,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAe,GAEpB,MACF,IAAK,IACH,KAAK,mBAAmB,EACxB,KAAK,aAAe,GAEpB,KACJ,CACF,CACF,CACF,CAAC,01DC5bKC,GAAmBC,GAAY,CACnC,MAAMC,EAAMC,EAAG,UAAU,KAAK,EAAEF,CAAC,EAO3BG,EANyC,CAC5C,EAAM,KACN,EAAM,KACN,EAAM,IAAA,EAGqBF,EAAI,OAAO,CAAC,CAAC,GAAK,KAEzC,MAAA,GAAGA,CAAG,GAAGE,CAAS,EAC3B,EAEMC,GAA+BJ,GACnB,IAAI,KAClB,KAAK,IAAIA,EAAE,iBAAkBA,EAAE,YAAA,EAAeA,EAAE,WAAW,EAAI,CAAC,CAAA,EAElC,WAAA,IAAiB,EAGxC,GAGFE,EAAG,UAAU,KAAK,EAAEF,CAAC,EAGxBK,EAAoBL,GACjB,CAAC,IAAK,KAAM,IAAI,EAAE,SAASE,EAAG,UAAU,IAAI,EAAEF,CAAC,CAAC,EACnD,GACA,GAAGE,EAAG,UAAU,IAAI,EAAEF,CAAC,CAAC,IAGxBM,EAA0BN,GAAY,CAC1C,MAAMO,EAAQL,EAAG,UAAU,OAAO,EAAEF,CAAC,EAE9B,OAAAO,IAAU,QAAU,GAAKA,CAClC,EAEMC,GAA4BR,GACzBE,EAAG,UAAU,OAAO,EAAEF,CAAC,EAG1BS,GAAoCT,GAGjC,GAFUE,EAAG,UAAU,QAAQ,EAAEF,CAAC,CAEvB,GAGdU,GAA4BV,GAAY,CACtC,MAAAW,EAAOL,EAAuBN,CAAC,EAC/BC,EAAMF,GAAgBC,CAAC,EACvBY,EAAQV,EAAG,UAAU,IAAI,EAAEF,CAAC,EAElC,OAAOW,GAAQ,GAAGC,CAAK,IAAIX,CAAG,EAChC,EAEMY,GAA6Bb,GAAY,CACvC,MAAAO,EAAQD,EAAuBN,CAAC,EAChCW,EAAO,OAAO,SAAST,EAAG,UAAU,IAAI,EAAEF,CAAC,CAAC,EAC5CC,EAAMF,GAAgBC,CAAC,EACvBY,EAAQV,EAAG,UAAU,IAAI,EAAEF,CAAC,EAE9B,OAAAO,GAASI,EAAO,IAAM,EACjB,GAAGC,CAAK,IAAIX,CAAG,IAAIM,CAAK,GAG1BG,GAAyBV,CAAC,CACnC,EAEMc,EAAyB5C,GACrB8B,GAAY,CAClB,MAAMW,EAAOT,EAAG,UAAU,IAAI,EAAEF,CAAC,EAGjC,MAAO,EAFQE,EAAG,UAAU,IAAI,EAAEF,CAAC,IAEf,MAAQ,OAAO,SAASW,CAAI,EAAIzC,IAAM,EAAA,EAIxD6C,GAA4B7C,GACxB8B,GAAY,CAClB,MAAMgB,EAASd,EAAG,UAAU,IAAI,EAAEF,CAAC,EAEnC,OAAO,OAAO,SAASgB,CAAM,EAAI9C,IAAM,CAAA,EAIrC+C,GAAmC/C,GAC/B8B,GAAY,CAClB,MAAMgB,EAASd,EAAG,UAAU,IAAI,EAAEF,CAAC,EAC7BkB,EAAShB,EAAG,UAAU,IAAI,EAAEF,CAAC,EAE5B,OAAA,OAAO,SAASgB,CAAM,EAAI9C,IAAM,GAAK,OAAO,SAASgD,CAAM,IAAM,CAAA,EAQtEC,EAAY,CAChB,YAAa,MACb,YAAa,KACb,YAAa,MACb,UAAW,KACX,WAAY,MACZ,WAAY,KACZ,YAAa,KACb,YAAa,IACb,QAAS,KACT,SAAU,IACV,SAAU,GACV,SAAU,IACV,SAAU,IACV,OAAQ,EACR,QAAS,EACT,SAAU,EACV,cAAe,GACf,gBAAiB,GACjB,UAAW,GACX,SAAU,GACZ,EAKaC,GAAwC,CACnD,CAAC3a,EAAa,QAAQ,EAAG,CACvB,CACE,UAAW0a,EAAU,YACrB,SAAUjB,EAAG,UAAU,MAAM,CAAC,EAC9B,OAAQO,EACV,EACA,CACE,UAAWU,EAAU,UACrB,SAAUjB,EAAG,UAAU,MAAM,CAAC,EAC9B,OAAQO,EACV,EACA,CACE,UAAWU,EAAU,WACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQQ,EACV,EACA,CACE,UAAWS,EAAU,WACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQW,EACV,EACA,CACE,UAAWM,EAAU,YACrB,SAAUjB,EAAG,QACb,OAAQW,EACV,EACA,CACE,UAAWM,EAAU,YACrB,SAAUjB,EAAG,QAAQ,MAAM,CAAC,EAC5B,OAAQW,EACV,EACA,CACE,UAAWM,EAAU,SACrB,SAAUjB,EAAG,QAAQ,MAAM,CAAC,EAC5B,OAASF,GAAY,CACb,MAAAW,EAAOL,EAAuBN,CAAC,EAC/BC,EAAMF,GAAgBC,CAAC,EACvBY,EAAQV,EAAG,UAAU,IAAI,EAAEF,CAAC,EAElC,OAAOW,GAAQ,GAAGC,CAAK,IAAIX,CAAG,EAChC,CACF,EACA,CACE,UAAWkB,EAAU,SACrB,SAAUjB,EAAG,QAAQ,MAAM,EAAE,EAC7B,OAAQQ,EACV,EACA,CACE,UAAWS,EAAU,SACrB,SAAUjB,EAAG,QAAQ,MAAM,EAAE,EAC7B,OAASF,GAAY,CACb,MAAAC,EAAMF,GAAgBC,CAAC,EAGtB,MAAA,GAFkBE,EAAG,UAAU,IAAI,EAAEF,CAAC,CAEnB,IAAIC,CAAG,EACnC,CACF,EACA,CACE,UAAWkB,EAAU,QACrB,SAAUjB,EAAG,SACb,OAASF,GAAY,CAEb,MAAAqB,EADiBrB,EAAE,gBAAkB,GAAKA,EAAE,WAAiB,IAAA,EACnC,UAAY,KAE5C,OAAOE,EAAG,UAAUmB,CAAM,EAAErB,CAAC,CAC/B,CACF,EACA,CACE,UAAWmB,EAAU,SACrB,SAAUjB,EAAG,QACb,OAAQ,IACV,CACF,EACA,CAACzZ,EAAa,QAAQ,EAAG,CACvB,CACE,UAAW0a,EAAU,YACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQM,EACV,EACA,CACE,UAAWW,EAAU,YACrB,UAAUjB,GAAAA,EAAG,UACV,MAAM,EAAE,IADDA,YAAAA,GAEN,OAAOe,GAAgC,CAAC,GAC5C,OAAQT,EACV,EACA,CACE,UAAWW,EAAU,YACrB,UAAUjB,GAAAA,EAAG,UACV,MAAM,EAAE,IADDA,YAAAA,GAEN,OAAOe,GAAgC,CAAC,GAC5C,OAAQT,EACV,EACA,CACE,UAAWW,EAAU,UACrB,SAAUjB,EAAG,UAAU,OAAOa,GAAyB,CAAC,CAAC,EACzD,OAAQT,CACV,EACA,CACE,UAAWa,EAAU,WACrB,UAAUjB,GAAAA,EAAG,UAAU,MAAM,CAAC,IAApBA,YAAAA,GAAuB,OAAOa,GAAyB,EAAE,GACnE,OAAQT,CACV,EACA,CACE,UAAWa,EAAU,WACrB,UAAUjB,GAAAA,EAAG,UAAU,MAAM,CAAC,IAApBA,YAAAA,GAAuB,OAAOa,GAAyB,EAAE,GACnE,OAAQT,CACV,EACA,CACE,UAAWa,EAAU,YACrB,UAAUjB,GAAAA,EAAG,UAAU,MAAM,EAAE,IAArBA,YAAAA,GAAwB,OAAOY,EAAsB,CAAC,GAChE,OAAQR,CACV,EACA,CACE,UAAWa,EAAU,YACrB,UAAUjB,GAAAA,EAAG,UAAU,MAAM,EAAE,IAArBA,YAAAA,GAAwB,OAAOY,EAAsB,CAAC,GAChE,OAAQR,CACV,EACA,CACE,UAAWa,EAAU,QACrB,SAAUjB,EAAG,QAAQ,OAAOY,EAAsB,CAAC,CAAC,EACpD,OAAQT,CACV,EACA,CACE,UAAWc,EAAU,SACrB,UAAUjB,GAAAA,EAAG,QAAQ,MAAM,CAAC,IAAlBA,YAAAA,GAAqB,OAAOY,EAAsB,CAAC,GAC7D,OAAQT,CACV,EACA,CACE,UAAWc,EAAU,SACrB,UAAUjB,GAAAA,EAAG,QAAQ,MAAM,CAAC,IAAlBA,YAAAA,GAAqB,OAAOY,EAAsB,EAAE,GAC9D,OAAQT,CACV,EACA,CACE,UAAWc,EAAU,SACrB,SAAUjB,EAAG,QAAQ,MAAM,CAAC,EAC5B,OAAQG,CACV,EACA,CACE,UAAWc,EAAU,SACrB,SAAUjB,EAAG,QAAQ,MAAM,CAAC,EAC5B,OAAQG,CACV,EACA,CACE,UAAWc,EAAU,OACrB,SAAUjB,EAAG,OACb,OAAQE,EACV,EACA,CACE,UAAWe,EAAU,QACrB,SAAUjB,EAAG,OAAO,MAAM,CAAC,EAC3B,OAAQE,EACV,EACA,CACE,UAAWe,EAAU,SACrB,SAAUjB,EAAG,SACb,OAAQ,IACV,EACA,CACE,UAAWiB,EAAU,cACrB,SAAUjB,EAAG,SACb,OAAQ,IACV,EACA,CACE,UAAWiB,EAAU,gBACrB,SAAUjB,EAAG,SACb,OAASF,GAAYE,EAAG,UAAU,IAAI,EAAEF,CAAC,EAAE,OAAO,CAAC,CACrD,EACA,CACE,UAAWmB,EAAU,UACrB,SAAUjB,EAAG,SAAS,MAAM,CAAC,EAC7B,OAAQ,KACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,SAAS,MAAM,CAAC,EAC7B,OAAQ,EACV,CACF,EACA,CAACzZ,EAAa,kBAAkB,EAAG,CACjC,CACE,UAAW0a,EAAU,YACrB,SAAUjB,EAAG,UACb,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,YACrB,SAAUjB,EAAG,UAAU,MAAM,CAAC,EAC9B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,YACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,UACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,WACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,WACrB,SAAUjB,EAAG,UACb,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,YACrB,SAAUjB,EAAG,UAAU,MAAM,CAAC,EAC9B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,YACrB,SAAUjB,EAAG,UAAU,MAAM,CAAC,EAC9B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,QACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,UAAU,MAAM,EAAE,EAC/B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,QACb,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,QACb,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,UAAU,MAAM,GAAG,EAChC,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,OACrB,SAAUjB,EAAG,QAAQ,MAAM,CAAC,EAC5B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,QACrB,SAAUjB,EAAG,QAAQ,MAAM,EAAE,EAC7B,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,OAAO,OAAQF,GAAY,CAChC,MAAAsB,EAAatB,EAAE,aACfuB,EAAc,IAAI,KACtBvB,EAAE,eAAe,EACjBA,EAAE,cAAgB,EAClB,GACA,WAAW,EACPwB,EAAe,KAAK,KAAKD,EAAc,CAAC,EAG5C,OAAAD,IAAeE,GACfF,IAAe,EAAIE,GACnBF,IAAe,EAAIE,GACnBF,IAAe,EAAIE,CAAA,CAEtB,EACD,OAAQ,EACV,EACA,CACE,UAAWL,EAAU,cACrB,SAAUjB,EAAG,OAAO,OAAQF,GAAY,CAChC,MAAAsB,EAAatB,EAAE,aACfuB,EAAc,IAAI,KACtBvB,EAAE,eAAe,EACjBA,EAAE,cAAgB,EAClB,GACA,WAAW,EACPyB,EAAoB,KAAK,KAAKF,EAAc,CAAC,EAEnD,OACED,IAAeG,GACfH,IAAe,EAAIG,GACnBH,IAAe,EAAIG,CAAA,CAEtB,EACD,OAAQ,EACV,EACA,CACE,UAAWN,EAAU,gBACrB,SAAUjB,EAAG,OAAO,OAAQF,GAAY,CAChC,MAAAsB,EAAatB,EAAE,aACfuB,EAAc,IAAI,KACtBvB,EAAE,eAAe,EACjBA,EAAE,cAAgB,EAClB,GACA,WAAW,EACP0B,EAAiB,KAAK,KAAKH,EAAc,CAAC,EAEhD,OAAOD,IAAeI,CAAA,CACvB,EACD,OAAQ,EACV,EACA,CACE,UAAWP,EAAU,UACrB,SAAUjB,EAAG,SACb,OAAQ,EACV,EACA,CACE,UAAWiB,EAAU,SACrB,SAAUjB,EAAG,SACb,OAAQ,EACV,CACF,CACF,EC3bMyB,GAA4C,CAChD,KAAKC,EAAIC,EAAS,CACV,KAAA,CAAE,MAAOC,CAAa,EAAAD,EAExB,GAAA,OAAOC,GAAa,WAAY,CAClC,QAAQ,MAAM,yDAAyD,EAEvE,MACF,CAEA,MAAMC,EAA2B,IAAI,eAClCC,GAAmC,CAC7BA,EAAQ,CAAC,GAILF,EAAAE,EAAQ,CAAC,CAAC,CACrB,CAAA,EAGFD,EAAS,QAAQH,CAAE,EACjBA,EAAuB,mBAAqBG,CAChD,EACA,OAAOH,EAAI,CACJA,EAAuB,qBACxBA,EAAuB,mBAAoB,aAC7C,OAAQA,EAAuB,mBAEnC,CACF,ECjCaK,GAAgB,CAC3B,CACE,KAAM,kBACN,WAAYN,EACd,CACF,EC4BMO,EAAU,CACd,WAAY,cACZ,aAAc,iBACd,QAAS,WACT,YAAa,gBACb,UAAW,aACX,MAAO,SACP,wBAAyB,2BAC3B,EAEeC,GAAAxb,EAAI,OAAO,CACxB,KAAM,YACN,WAAY,CACV,eAAgBgb,EAClB,EACA,MAAO,CACL,aAAc,CACZ,KAAM,OACN,QAAS,KAAO,CAAA,EAClB,EACA,YAAa,CACX,KAAM,OACN,QAAS,IAAMP,EACjB,EACA,KAAM,CACJ,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,MACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,MACX,EACA,kBAAmB,CACjB,KAAM,OACN,QAAS,MACX,EACA,iBAAkB,CAChB,KAAM,QACN,QAAS,EACX,EACA,YAAa,CACX,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CACE,MAAA,CACL,QAAS,KACT,OAAQ,KACR,SAAU,KACV,wBAAyB,KACzB,IAAK,KACL,cAAe,KAMf,MAAO,CAAC,EACR,UAAW,KACX,iBAAkB,KAClB,wBAAyB,KACzB,aAAc,KACd,YAAa,GACb,WAAY,GACZ,iBAAkB,GAClB,kBAAmB,EACnB,gBAAiB,GACjB,aAAc,KACd,mBAAoB,GACpB,iBAAkB,KAClB,kBAAmB,CAAC,EACpB,iBAAkB,KAClB,UAAW,CAAA,CAEf,EACA,SAAU,CACR,SAAU,CACD,MAAA,CACL,QAAS,KAAK,KACV,qCACA,oBACJ,WAAY,KAAK,KAAO,gBAAkB,eAC1C,YAAa,KAAK,KACd,+CACA,kDACJ,iBAAkB,KAAK,KACnB,+CACA,iDAAA,CAER,EACA,gBAAyB,CAQvB,OAPqB,OAAO,OAC1B,KAAK,YAAA,EAE6B,OAAO,CAAC7D,EAAK6E,IAAgB,OAC/D,OAAO,KAAK,IAAI7E,GAAKG,EAAA0E,EAAY,QAAZ,YAAA1E,EAAmB,MAAM,GAC7C,CAAC,EAEoB,IAAM,CAChC,EACA,qBAA8B,CAC5B,MAAM2E,EAAY,OAAO,KAAK,KAAK,WAAW,EAAE,OAAS,EAEzD,OAAO,KAAK,WAAaA,CAC3B,EACA,gBAAyB,CACvB,MAAMC,EAAoB,OAAO,KAAK,KAAK,YAAY,EAAE,OACnDC,EAAU,KAAK,mBAAqBD,EAAoB,GACxDE,EAAqB,KAAK,iBAAmBF,EAE5C,OAAA,KAAK,oBAAsBE,EAAqBD,CACzD,EACA,iBAAmC,CAOjC,OALE,OAAO,OAAO,KAAK,YAAY,EAE9B,IAAK3I,GAA2BA,EAAE,MAAM,EACxC,KAAK,EAEe,KAAK,CAAChL,EAAGD,IAC9B,IAAI,KAAKC,EAAE,WAAaA,EAAE,SAAS,EACnC,IAAI,KAAKD,EAAE,WAAaA,EAAE,SAAS,EAC/B,EACA,EAAA,CAER,EACA,aAA6B,CACvB,IAAA8T,EACA,OAAA,KAAK,gBAAgB,OAAS,EAClBA,EAAA,KAAK,gBAAgB,CAAC,EAKtBA,EAAA,CACZ,UAHgB,IAAI,KAAK,IAAI,OAAO,QAAA,EAAY,KAAG,CAGxC,EAIRA,CACT,EACA,aAA6B,CACvB,IAAAC,EACA,OAAA,KAAK,gBAAgB,OAAS,EAChCA,EAAc,KAAK,gBAAgB,KAAK,gBAAgB,OAAS,CAAC,EAIpDA,EAAA,CACZ,cAHyB,IAGd,EAIRA,CACT,CACF,EACA,MAAO,CACL,MAAO,CACL,KAAK,iBAAiB,CACxB,EACA,mBAAoB,CAClB,KAAK,kCAAkC,CACzC,EACA,WAAY,CACV,KAAK,uBAAuB,CAC9B,EACA,SAAU,CACR,KAAK,uBAAuB,CAC9B,CACF,EACA,SAAU,CACR,KAAK,aAAa,CACpB,EACA,eAAgB,CACL,SAAA,oBAAoB,UAAW,KAAK,qBAAqB,CACpE,EACA,QAAS,CACP,eAAeC,EAA4B,CAClC,OAAAC,EAAOD,CAAS,EAAE,IAAI,KAAK,UAAW,SAAS,EAAE,QAC1D,EACA,eAAeE,EAAoB,CACjC,MAAMC,EAAgB,IAAI,KAAKD,CAAI,EAAE,kBAAkB,EAEvD,OAAOD,EAAOC,CAAI,EACf,IAAIC,EAAe,SAAS,EAC5B,UAAU,KAAK,UAAW,EAAI,EAC9B,OAAO,CACZ,EACA,sBAAsBH,EAA8B,CAClD,OAAOC,EAAO,UAAUD,CAAS,EAAE,OAAO,qBAAqB,CACjE,EACA,aAAa,CAAE,YAAAI,GAAoC,CAC7C,KAAK,KACP,KAAK,IAAI,KAAK,QAASA,EAAY,KAAK,CAE5C,EACA,cAAe,CAGT,GAFJ,KAAK,SAAS,EAEV,CAAC,KAAK,SAAU,CACP,WAAA,KAAK,aAAc,GAAG,EAEjC,MACF,CAEA,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,CAC/B,EACA,UAAW,CACJ,KAAA,QAAU,KAAK,MAAM,QACrB,KAAA,OAAS,KAAK,MAAM,OACpB,KAAA,SAAW,KAAK,MAAM,kBACtB,KAAA,wBAA0B,KAAK,MAAM,iBAC5C,EACA,SAAU,CACR,KAAK,IAAM7C,EACR,OAAO,KAAK,QAAQ,EACpB,OAAO,KAAK,EACZ,KAAK,QAAS,KAAK,SAAS,WAAW,EACvC,KAAK,SAAU,KAAK,cAAc,CAMvC,EACA,eAAgB,CACd,MAAM8C,EACJ,KAAK,WACL,KAAK,YAAY,WACjB,KAAK,YAAY,UACnB,KAAK,UAAYJ,EAAO,UAAUI,CAAe,EAAE,WACrD,EACA,eAAgB,CACd,MAAMC,EACJ,KAAK,WACL,KAAK,YAAY,WACjB,KAAK,YAAY,UACbC,EACJ,KAAK,SAAW,KAAK,YAAY,WAAa,KAAK,YAAY,QAE5D,KAAA,UAAYhD,EACd,UAAU,EACV,OAAO,CAAC,KAAK,eAAe+C,CAAS,EAAG,KAAK,eAAeC,CAAO,CAAC,CAAC,EACrE,MAAM,CAAC,EAAG,KAAK,SAAS,WAAW,CAAC,EAElC,KAAA,iBAAmB,KAAK,UAAU,KAAK,EAC5C,KAAK,8BAA8B,CACrC,EACA,WAAY,CACV,IAAIC,EAAI,EACR,MAAMZ,EAAU,EACL,UAAAa,KAAY,KAAK,YAAa,CACjC,MAAAC,EAAO,KAAK,WAAWD,CAAwB,EAChD,KAAA,MAAMA,CAAwB,EAAIC,EAClC,KAAA,IACF,OAAO,GAAG,EACV,QAAQnB,EAAQ,MAAO,EAAI,EAC3B,QAAQ,GAAGA,EAAQ,KAAK,IAAIkB,CAAQ,GAAI,EAAI,EAC5C,KAAK,YAAa,gBAAgBD,GAAKZ,CAAO,GAAG,EACjD,KAAKc,CAAI,EAEZ,KAAK,mBAAmBD,CAAQ,EAChCD,GAAK,KAAK,UACZ,CACF,EACA,WAAWC,EAAwB,CAC3B,MAAAC,EAAO,KAAK,YAAYD,CAAwB,EAChDpZ,EAAS,KAAK,mBAAmBqZ,CAAI,EAEpC,OAAAnD,EACJ,WAAiB,KAAK,SAAS,EAC/B,MAAMlW,EAAO,QAAQ,EACrB,WAAYgW,GAAMhW,EAAO,SAASgW,CAAC,CAAC,EACpC,cAAc,CAAC,EACf,cAAc,KAAK,cAAc,CACtC,EACA,mBAAmBxF,EAAgC,CACjD,KAAM,CAAE,SAAA8I,EAAU,OAAAjC,CAAO,EAAI7G,EAAQ,KAClCxQ,GACCA,EAAO,WAAa,KAAK,yBAA2BA,EAAO,QAAA,EASxD,MAAA,CACL,SAPgBgW,GACT,OAAOqB,GAAW,WACrBA,EAAOrB,CAAC,EACRE,EAAG,WAAWmB,CAAM,EAAErB,CAAC,EAK3B,SAAAsD,CAAA,CAEJ,EACA,kBAAmB,CACb,KAAK,cAIT,KAAK,aAAepD,EACjB,KAA6B,EAC7B,GAAG,OAAQ,KAAK,UAAU,EAC1B,YAAY,CAAC,IAAM,IAAO,CAAC,EAEzB,KAAA,IAAI,KAAK,KAAK,YAAY,EACjC,EACA,6BAA8B,CAC5B,KAAK,IACF,OAAO,MAAM,EACb,KAAK,QAASgC,EAAQ,uBAAuB,EAC7C,MAAM,SAAU,KAAK,EACrB,MAAM,eAAgB,KAAK,EAC3B,MAAM,UAAW,CAAC,EAClB,KAAK,KAAM,CAAC,EACZ,KAAK,KAAM,CAAC,EACZ,KAAK,KAAM,CAAC,EACZ,KAAK,KAAM,KAAK,cAAc,EACjC,KAAK,kCAAkC,CACzC,EACA,mCAAoC,CAClC,MAAMqB,EAAS,KAAK,IAAI,OAAO,IAAIrB,EAAQ,uBAAuB,EAAE,EAChE,GAAA,CAAC,KAAK,kBAAmB,CACpBqB,EAAA,MAAM,UAAW,CAAC,EAEzB,MACF,CACA,MAAMZ,EAAY,KAAK,eAAe,KAAK,iBAAiB,EACtDa,EAAU,KAAK,UAAUb,CAAS,EACnC,MAAMa,CAAO,EAGTD,EAAA,MAAM,UAAW,CAAC,EAFlBA,EAAA,KAAK,KAAMC,CAAO,EAAE,KAAK,KAAMA,CAAO,EAAE,MAAM,UAAW,EAAG,CAIvE,EACA,+BAAgC,CAC9B,MAAMC,EAAe,KAAK,UAAU,OAAO,CAAC,EAAE,UACxCC,EAAe,KAAK,UAAU,OAAO,CAAC,EAAE,UACxCC,EAAO,KAER,KAAA,yBAA2BD,EAAeD,GAAgBE,CACjE,EACA,yBAA0B,CACf,SAAA,iBAAiB,UAAW,KAAK,qBAAqB,EAC/D,KAAK,IAAI,GAAG,YAAa,KAAK,eAAe,EAC7C,KAAK,IAAI,GAAG,YAAa,KAAK,eAAe,EAC7C,KAAK,IAAI,GAAG,QAAS,KAAK,WAAW,EACrC,KAAK,IAAI,GAAG,aAAc,KAAK,gBAAgB,CACjD,EACA,iBAAkB,CAChB,KAAK,YAAc,EACrB,EACA,uBAAwB,CACtB,KAAK,YAAc,EACrB,EACA,kBAAmB,CACjB,KAAK,mBAAqB,EAC5B,EACA,gBAAgBzE,EAAmB,CACjC,GAAI,KAAK,YACP,OAEF,MAAM0E,EAAS1E,EAAM,QACf2D,EAAO,KAAK,UAAU,OAAOe,CAAM,EACpC,KAAA,iBAAmB,KAAK,eAAef,CAAI,EAChD,KAAK,mBAAqB,GACrB,KAAA,OAAO,MAAM,KAAOe,EAAS,KAE7B,KAAK,UAIV,KAAK,kBAAoB,CACvB,KAAM,GAAGA,CAAM,KACf,OAAQ,GAAG,KAAK,SAAS,wBAAwB,MAAM,IAAA,EAEzD,KAAK,kCAAkC,EACzC,EACA,YAAY1E,EAAmB,CAC7B,MAAM0E,EAAS1E,EAAM,QACf2D,EAAO,KAAK,UAAU,OAAOe,CAAM,EACnCC,EAAkB,KAAK,eAAehB,CAAI,EAE3C,KAAA,MAAM,eAAgBgB,CAAe,CAC5C,EACA,qBACEC,EACAC,EACAC,EACA,CACA,KAAK,aAAeD,EACpB,KAAK,iBAAmBC,EACxB,KAAK,gBAAkB,GACvB,KAAK,MAAM,kBAAmB,CAAE,UAAAD,EAAW,UAAAC,CAAW,CAAA,CACxD,EACA,qBAAsB,CACpB,KAAK,gBAAkB,GACvB,KAAK,aAAe,KACpB,KAAK,MAAM,gBAAgB,CAC7B,EACA,WAAW9E,EAAwC,CACjD,MAAM+E,EAAW/E,EAAM,UAAU,SAAS,KAAK,gBAAgB,EAC/D,KAAK,UAAU,OAAO+E,EAAS,OAAQ,CAAA,EACvC,KAAK,8BAA8B,EAExB,UAAAb,KAAY,KAAK,MACrB,KAAA,YAAYA,EAAUa,CAAQ,EACnC,KAAK,mBAAmBb,CAAQ,EAElC,KAAK,kBAAkB,EACvB,KAAK,kCAAkC,CACzC,EACA,wBAAyB,CACvB,MAAMH,EACJ,KAAK,WACL,KAAK,YAAY,WACjB,KAAK,YAAY,UACbC,EACJ,KAAK,SAAW,KAAK,YAAY,WAAa,KAAK,YAAY,QAE3DgB,EAAY,KAAK,eAAejB,CAAS,EACzCkB,EAAU,KAAK,eAAejB,CAAO,EACrCkB,EAAgB,KAAK,SAAS,YAC9BC,EAAY,CAACH,EAAWC,CAAO,EAC/BG,EAAW,CAAC,EAAGF,CAAa,EAE7B,KAAA,UAAYlE,EAAG,UAAU,EAAE,OAAOmE,CAAS,EAAE,MAAMC,CAAQ,EAC3D,KAAA,iBAAmB,KAAK,UAAU,KAAK,EAE5C,KAAK,8BAA8B,EACxB,UAAAlB,KAAY,KAAK,MACrB,KAAA,YAAYA,EAAU,KAAK,SAAS,EACzC,KAAK,mBAAmBA,CAAQ,EAElC,KAAK,kBAAkB,EACvB,KAAK,kCAAkC,CACzC,EACA,YAAYA,EAAkBa,EAA2C,CACjE,MAAAZ,EAAmB,KAAK,MAAMD,CAAwB,EACtDmB,EAAc,KAAK,mBACvB,KAAK,YAAYnB,CAAwB,CAAA,EAE3CC,EACG,MAAMY,CAAQ,EACd,MAAMM,EAAY,QAAQ,EAC1B,WAAYvE,GAAMuE,EAAY,SAASvE,CAAC,CAAC,EACzC,cAAc,CAAC,EACb,KAAA,IAAI,OAAoB,IAAIkC,EAAQ,KAAK,IAAIkB,CAAQ,EAAE,EAAE,KAAKC,CAAI,CACzE,EACA,mBAAmBD,EAAkB,CACnC,KAAK,IACF,OAAoB,IAAIlB,EAAQ,KAAK,IAAIkB,CAAQ,EAAE,EACnD,UAAU,YAAY,EACtB,KAAK,UAAY,CACZ,IAAAoB,EAActE,EAAG,OAAO,IAAsB,EAC9CuE,EAAYD,EAAY,KAAK,EAAyB,QAAQ,EAClEA,EACG,KAAK,IAAKC,EAAS,OAAS,CAAC,EAC7B,KAAK,IAAK,CAAC,EACX,MAAM,cAAe,OAAO,CAAA,CAChC,CACL,EACA,mBAAoB,CAClB,MAAMC,EAAgB,IAAIxC,EAAQ,UAAU,gBAAgBA,EAAQ,OAAO,UAAUA,EAAQ,WAAW,UAAUA,EAAQ,YAAY,IACtI,KAAK,IACF,UAAyCwC,CAAa,EACtD,KAAK,IAAK,KAAK,aAAa,EAC5B,KAAK,QAAS,KAAK,iBAAiB,EACpC,KAAK,SAAU,KAAK,gBAAgB,CACzC,EACA,cAAc1E,EAAkB,CACvB,OAAA,KAAK,UAAU,KAAK,eAAeA,EAAE,WAAaA,EAAE,SAAS,CAAC,CACvE,EACA,kBAAkBA,EAAkB,CAClC,GAAI,CAACA,EACI,MAAA,GAEL,GAAAA,EAAE,WAAaA,EAAE,QAAS,CAC5B,MAAM2E,EAAiB,IAAI,KAAK3E,EAAE,SAAS,EACrC4E,EAAe,IAAI,KAAK5E,EAAE,OAAO,EACjC6E,EACJ,KAAK,UAAUD,CAAY,EAAI,KAAK,UAAUD,CAAc,EAEvD,OAAA,KAAK,IAAIE,EAAO,CAAC,CAAA,KACnB,CACC,MAAAC,EAAiB,GAAK,KAAK,wBAA0B,MAEpD,OAAA,KAAK,IAAIA,EAAgB,CAAC,CACnC,CACF,EACA,kBAAmB,CACjB,KAAK,IAAI,UAAU,KAAK5C,EAAQ,UAAU,EAAE,EAAE,SACvC,OAAA,QAAQ,KAAK,YAAY,EAAE,QAChC,CAAC,CAAC1Z,EAAM4Z,CAAW,EAAGhI,IAAU,CAC9B,KAAM,CAAE,MAAArL,EAAO,MAAAgW,EAAO,OAAAC,CAAA,EAAW5C,EAC3BG,EAAUnI,IAAU,EAAI,EAAI,KAAK,kBACjC6K,EACJ7K,GAAS,KAAK,iBAAmBmI,GAAW,KAAK,oBAC7C2C,EAAW,KAAK,IACnB,OAAO,GAAG,EACV,KAAK,aAAcnW,CAAK,EACxB,QAAQmT,EAAQ,WAAY,EAAI,EAChC,QAAQ,GAAGA,EAAQ,UAAU,IAAI1Z,CAAI,GAAI,EAAI,EAEhD,KAAK,eAAe,CAClB,MAAAuG,EACA,SAAAmW,EACA,UAAAD,CAAA,CACD,EAED,KAAK,WAAW,CACd,OAAAD,EACA,MAAAjW,EACA,SAAAmW,EACA,UAAAD,EACA,KAAAzc,CAAA,CACD,EAED,KAAK,cAAc,CACjB,MAAAuG,EACA,MAAAgW,EACA,SAAAG,EACA,UAAAD,CAAA,CACD,CACH,CAAA,CAEJ,EACA,eAAe,CACb,MAAAlW,EACA,UAAAkW,EACA,SAAAC,CAAA,EAKC,CACDA,EACG,OAAO,MAAM,EACb,KAAK,QAAShD,EAAQ,YAAY,EAClC,KAAK,IAAK,CAAC,EACX,KAAK,IAAK+C,CAAS,EACnB,KAAK,QAAS,KAAK,SAAS,WAAW,EACvC,KAAK,SAAU,KAAK,gBAAgB,EACpC,KAAK,OAAQ/E,EAAG,MAAMnR,CAAK,EAAG,SAAA,CAAU,EACxC,MAAM,UAAW,EAAG,CACzB,EACA,WAAW,CACT,OAAAiW,EACA,SAAAE,EACA,UAAAD,EACA,MAAAlW,EACA,KAAAvG,CAAA,EAOC,CAEE0c,EAAA,UAAU,MAAM,EAChB,KAAKF,CAAM,EACX,QACA,OAAO,MAAM,EACb,KAAK,IAAK,KAAK,aAAa,EAC5B,KAAK,IAAKC,CAAS,EACnB,KAAK,KAAM,GAAG,EACd,KAAK,KAAM,GAAG,EACd,KAAK,QAAS,KAAK,iBAAiB,EACpC,KAAK,SAAU,KAAK,gBAAgB,EACpC,KAAK,eAAgB,CAAC,EACtB,KAAK,SAAU,SAAS,EACxB,KAAK,SAAU,OAAO,EACtB,MAAM,OAAQlW,CAAK,EACnB,GAAG,YAAa,CAACmQ,EAAO6E,IACvB,KAAK,qBAAqB7E,EAAO6E,EAAWvb,CAAI,GAEjD,GAAG,WAAY,IAAM,KAAK,oBAAqB,CAAA,CACpD,EACA,cAAc,CACZ,SAAA0c,EACA,UAAAD,EACA,MAAAlW,EACA,MAAAgW,CAAA,EAMC,CACD,MAAMI,EAAK,CACT,EAAG,GACH,EAAGF,EACH,EAAG,KAAK,eAAiB,EACzB,EAAG,KAAK,iBACR,OAAQ,CAAA,EAIVC,EACG,OAAO,MAAM,EACb,KAAK,QAAShD,EAAQ,OAAO,EAC7B,KAAK,IAAKiD,EAAG,CAAC,EACd,KAAK,IAAKA,EAAG,CAAC,EACd,KAAK,QAASA,EAAG,CAAC,EAClB,KAAK,SAAUA,EAAG,CAAC,EACnB,KAAK,KAAMA,EAAG,MAAM,EACpB,KAAK,KAAMA,EAAG,MAAM,EACpB,MAAM,OAAQ,KAAK,KAAO,UAAY,OAAO,EAI7CD,EAAA,OAAO,MAAM,EACb,KAAK,QAAShD,EAAQ,WAAW,EACjC,KAAK,IAAKiD,EAAG,CAAC,EACd,KAAK,IAAKA,EAAG,CAAC,EACd,KAAK,QAASA,EAAG,CAAC,EAClB,KAAK,SAAUA,EAAG,CAAC,EACnB,KAAK,KAAMA,EAAG,MAAM,EACpB,KAAK,KAAMA,EAAG,MAAM,EACpB,MAAM,OAAQ,KAAK,wBAAwBpW,CAAK,CAAC,EACjD,MAAM,SAAU,KAAK,iBAAiBA,CAAK,CAAC,EAC5C,MAAM,eAAgB,GAAI,EAI1BmW,EAAA,OAAO,MAAM,EACb,KAAK,QAAShD,EAAQ,SAAS,EAC/B,KAAK,IAAK,CAAC,EACX,KAAK,IAAK+C,EAAY,KAAK,iBAAmB,CAAC,EAC/C,KAAK,KAAM,QAAQ,EACnB,MAAM,cAAe,OAAO,EAC5B,MAAM,YAAa,MAAM,EACzB,MAAM,cAAe,GAAG,EACxB,MAAM,kBAAmB,OAAO,EAChC,MAAM,cAAe,QAAQ,EAC7B,MAAM,OAAQ,KAAK,iBAAiBlW,CAAK,CAAC,EAC1C,KAAKgW,CAAK,CACf,EACA,iBAAiBK,EAAmB,SAClC,OACE,KAAK,MACDlF,EAAAA,EAAG,MAAMkF,CAAS,IAAlBlF,YAAAA,EAAqB,SAAS,MAC9BA,EAAAA,EAAG,MAAMkF,CAAS,IAAlBlF,YAAAA,EAAqB,OAAO,IAC/B,UACL,EACA,wBAAwBkF,EAAmB,CACrC,IAAArW,EAAQmR,EAAG,MAAMkF,CAAS,EACvB,OAAArW,EAAA,QAAU,KAAK,KAAO,GAAM,GAE5BA,EAAO,UAChB,EACA,kBAAmB,CACV,OAAA,QAAQ,KAAK,YAAY,EAAE,QAAQ,CAAC,CAACvG,EAAM6c,CAAY,IAAM,CAC5D,MAAAH,EAAW,KAAK,IAAI,OAAO,IAAIhD,EAAQ,UAAU,IAAI1Z,CAAI,EAAE,EAE3DuG,EAASmW,EAAS,KAAK,EAAmB,QAAQ,MAErDA,EAAA,OAAO,IAAIhD,EAAQ,OAAO,EAAE,EAC5B,MAAM,OAAQ,KAAK,KAAO,QAAU,OAAO,EAE3CgD,EAAA,OAAO,IAAIhD,EAAQ,WAAW,EAAE,EAChC,MAAM,OAAQ,KAAK,wBAAwBnT,CAAe,CAAC,EAC3D,MAAM,SAAU,KAAK,iBAAiBA,CAAe,CAAC,EACtD,MAAM,eAAgB,GAAI,EAE1BmW,EAAA,OAAO,IAAIhD,EAAQ,SAAS,EAAE,EAC9B,MAAM,OAAQ,KAAK,iBAAiBnT,CAAe,CAAC,CAAA,CACxD,CACH,CACF,CACF,CAAC,8lEC7rBYuW,GAAa,CACxB,QAAAC,GACA,OAAAC,GACA,MAAAC,GACA,SAAAzG,GACA,KAAA0G,GACA,KAAAC,GACA,aAAAC,GACA,UAAAC,EACF,EAEezL,GAAA,CACb,QAAQzT,EAAqB,CAE3B,OAAO,KAAK2e,EAAU,EAAE,QAAStd,GAAS,CAExCrB,EAAI,UAAUqB,EAAMsd,GAAWtd,CAAI,CAAC,CAAA,CACrC,EAGDia,GAAc,QAAQ,CAAC,CAAE,KAAAja,EAAM,WAAA8d,KAAiB,CAC1Cnf,EAAA,UAAUqB,EAAM8d,CAAU,CAAA,CAC/B,CACH,CACF","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}