chiperos-ai-components-library 0.0.1 → 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chiperos-ai-components-library.js","sources":["../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../src/components/ActionCard/index.tsx","../src/components/BannerAlerts/index.tsx","../node_modules/class-variance-authority/dist/index.mjs","../src/components/ButtonRadix/index.tsx","../src/components/BrandIcons/index.tsx","../src/components/CardsGrid/index.tsx","../src/components/FeatureCard/index.tsx","../node_modules/zod/v4/core/core.js","../node_modules/zod/v4/core/util.js","../node_modules/zod/v4/core/errors.js","../node_modules/zod/v4/core/parse.js","../node_modules/zod/v4/core/regexes.js","../node_modules/zod/v4/core/checks.js","../node_modules/zod/v4/core/versions.js","../node_modules/zod/v4/core/schemas.js","../node_modules/zod/v4/core/registries.js","../node_modules/zod/v4/core/api.js","../node_modules/zod/v4/classic/iso.js","../node_modules/zod/v4/classic/errors.js","../node_modules/zod/v4/classic/parse.js","../node_modules/zod/v4/classic/schemas.js","../node_modules/libphonenumber-js/metadata.min.json.js","../node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","../node_modules/libphonenumber-js/es6/tools/semver-compare.js","../node_modules/libphonenumber-js/es6/helpers/isObject.js","../node_modules/libphonenumber-js/es6/metadata.js","../node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","../node_modules/libphonenumber-js/es6/isPossible.js","../node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","../node_modules/libphonenumber-js/es6/helpers/getNumberType.js","../node_modules/libphonenumber-js/es6/isValid.js","../node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","../node_modules/libphonenumber-js/es6/constants.js","../node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","../node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","../node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","../node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","../node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","../node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","../node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","../node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","../node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","../node_modules/libphonenumber-js/es6/helpers/RFC3966.js","../node_modules/libphonenumber-js/es6/format.js","../node_modules/libphonenumber-js/es6/PhoneNumber.js","../node_modules/libphonenumber-js/es6/ParseError.js","../node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","../node_modules/libphonenumber-js/es6/helpers/parseDigits.js","../node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","../node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","../node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","../node_modules/libphonenumber-js/es6/parse.js","../node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","../node_modules/libphonenumber-js/es6/normalizeArguments.js","../node_modules/libphonenumber-js/es6/parsePhoneNumberWithError.js","../node_modules/libphonenumber-js/min/exports/parsePhoneNumberWithError.js","../src/components/Input/index.tsx","../src/components/KPIComparison/KPIComparisonCustom.tsx","../src/components/KPIComparison/index.tsx","../src/components/KPICard/KPICardCustom.tsx","../src/components/KPICard/index.tsx","../src/components/Loader/index.tsx","../src/components/OptionCard/index.tsx","../src/components/OrderCard/OrderCardCustom.tsx","../src/components/OrderCard/index.tsx","../src/components/PaginationLib/index.tsx","../node_modules/@radix-ui/number/dist/index.mjs","../node_modules/@radix-ui/primitive/dist/index.mjs","../node_modules/@radix-ui/react-context/dist/index.mjs","../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-collection/dist/index.mjs","../node_modules/@radix-ui/react-direction/dist/index.mjs","../node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../node_modules/@radix-ui/react-id/dist/index.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-arrow/dist/index.mjs","../node_modules/@radix-ui/react-use-size/dist/index.mjs","../node_modules/@radix-ui/react-popper/dist/index.mjs","../node_modules/@radix-ui/react-portal/dist/index.mjs","../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@radix-ui/react-select/dist/index.mjs","../src/components/Select/index.tsx","../src/components/Switcher/index.tsx","../src/components/Table/index.tsx","../src/components/TableHeader/index.tsx","../src/components/Toasts/index.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\n/**\n * Combina clases de forma inteligente, resolviendo conflictos de Tailwind CSS.\n * @param {...ClassValue} inputs - Clases a combinar.\n * @returns {string} - Cadena de clases finales.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs))\n}\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface ActionCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Título de la acción\n */\n title: string;\n \n /**\n * Descripción de la acción\n */\n description: string;\n \n /**\n * Ícono de la acción (React node)\n */\n icon: React.ReactNode;\n \n /**\n * Botón de acción (CTA) opcional\n */\n action?: {\n label: string;\n onClick: () => void;\n };\n \n /**\n * Callback al hacer clic en toda la card\n */\n onClick?: () => void;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente ActionCard\n * \n * Card con ícono, título, descripción y call-to-action opcional.\n * Ideal para dashboards, acciones rápidas y notificaciones.\n * \n * @example\n * ```tsx\n * <ActionCard\n * icon={<Package size={32} color=\"#d48620\" strokeWidth={2} />}\n * title=\"Identify Low Inventory Items\"\n * description=\"Find SKUs with less than 5 days of inventory remaining.\"\n * action={{\n * label: \"Show low inventory\",\n * onClick: () => navigate('/inventory/low')\n * }}\n * />\n * ```\n */\nexport const ActionCard = React.forwardRef<HTMLDivElement, ActionCardProps>(\n (\n {\n title,\n description,\n icon,\n action,\n onClick,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n onClick={onClick}\n className={cn(\n 'bg-white border border-[#ecebf0] rounded-xl p-5 flex gap-2',\n onClick && 'cursor-pointer hover:shadow-md transition-shadow',\n className\n )}\n style={{ width: '350px' }}\n {...props}\n >\n {/* Ícono */}\n <div className=\"flex items-center justify-center shrink-0\">\n {icon}\n </div>\n\n {/* Contenido */}\n <div className=\"flex-1 flex flex-col gap-2 min-w-0\">\n {/* Título */}\n <h3\n className=\"text-base leading-5 font-semibold text-[#312e4d] capitalize\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {title}\n </h3>\n\n {/* Descripción */}\n <p\n className=\"text-sm leading-[18px] font-normal text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {description}\n </p>\n\n {/* CTA Button */}\n {action && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n action.onClick();\n }}\n className=\"text-sm leading-[18px] font-semibold text-[#00995a] hover:underline self-start\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {action.label}\n </button>\n )}\n </div>\n </div>\n );\n }\n);\n\nActionCard.displayName = 'ActionCard';\n","import * as React from 'react';\nimport { AlertTriangle, Info } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\nexport interface BannerAlertsProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Variante del banner alert\n * @default \"information\"\n */\n variant?: 'warning' | 'information' | 'grey';\n \n /**\n * Título del alert\n */\n title: string;\n \n /**\n * Descripción del alert\n */\n description: string;\n \n /**\n * Icono personalizado (opcional)\n */\n icon?: React.ReactNode;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente BannerAlerts - Banners informativos con diferentes variantes\n * \n * Muestra mensajes de alerta con tres variantes:\n * - warning: Para alertas de advertencia (naranja)\n * - information: Para información general (azul)\n * - grey: Para notificaciones neutras (gris)\n * \n * Cada banner incluye un icono, título y descripción.\n */\nconst BannerAlerts = React.forwardRef<HTMLDivElement, BannerAlertsProps>(\n (\n {\n variant = 'information',\n title,\n description,\n icon,\n className,\n ...props\n },\n ref\n ) => {\n // Configuración de estilos por variante\n const variantStyles = {\n warning: {\n container: 'bg-[#fff3e8]',\n text: 'text-[#d48620]',\n icon: <AlertTriangle size={24} className=\"text-[#d48620]\" />,\n },\n information: {\n container: 'bg-[#e3f2ff]',\n text: 'text-[#4087fb]',\n icon: <Info size={24} className=\"text-[#4087fb]\" />,\n },\n grey: {\n container: 'bg-[#f4f4f4]',\n text: 'text-[#6e6f6e]',\n icon: <Info size={24} className=\"text-[#202020]\" />,\n },\n };\n\n const currentVariant = variantStyles[variant];\n const displayIcon = icon || currentVariant.icon;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-3 p-4 rounded-lg',\n currentVariant.container,\n currentVariant.text,\n className\n )}\n role=\"alert\"\n aria-live=\"polite\"\n {...props}\n >\n {/* Icono */}\n <div className=\"flex-shrink-0\">{displayIcon}</div>\n\n {/* Contenido */}\n <div className=\"flex flex-col gap-0 flex-1 min-w-0\">\n {/* Título */}\n <div className=\"font-semibold text-sm leading-[18px]\">\n {title}\n </div>\n\n {/* Descripción */}\n <div className=\"font-normal text-sm leading-[18px]\">\n {description}\n </div>\n </div>\n </div>\n );\n }\n);\n\nBannerAlerts.displayName = 'BannerAlerts';\n\nexport { BannerAlerts };\n\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 rounded font-semibold transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n primary:\n 'bg-[#00b56b] text-white border border-[#00b56b] hover:bg-[#00995a] hover:border-[#00995a] active:bg-[#007a48] active:border-[#007a48] disabled:bg-[#e0e0e0] disabled:border-[#e0e0e0] disabled:text-[#9e9e9e]',\n secondary:\n 'bg-transparent text-[#312e4d] border border-[#00b56b] hover:bg-[#e6f8ef] hover:border-[#00995a] active:bg-[#00b56b]/10 active:border-[#007a48] disabled:bg-transparent disabled:border-[#e0e0e0] disabled:text-[#9e9e9e]',\n alert:\n 'bg-[#ff305f] text-white border border-[#a80023] hover:bg-[#d4002c] hover:border-[#a80023] active:bg-[#a80023] active:border-[#a80023] disabled:bg-[#e0e0e0] disabled:border-[#e0e0e0] disabled:text-[#9e9e9e]',\n ghost:\n 'bg-transparent text-[#00995a] border-0 hover:bg-[#e6f8ef] hover:text-[#00995a] active:bg-[#00b56b]/10 active:text-[#007a48] disabled:bg-transparent disabled:text-[#9e9e9e]',\n plain:\n 'bg-transparent text-[#00995a] border-0 p-0 h-auto hover:text-[#00995a] hover:underline active:text-[#007a48] disabled:text-[#9e9e9e] disabled:no-underline',\n },\n size: {\n small: 'h-8 px-3 py-2 text-sm',\n medium: 'h-9 px-4 py-2 text-sm',\n large: 'h-11 px-5 py-2.5 text-base',\n },\n iconOnly: {\n true: 'aspect-square',\n },\n },\n compoundVariants: [\n {\n size: 'small',\n iconOnly: true,\n className: 'h-8 w-8 p-0',\n },\n {\n size: 'medium',\n iconOnly: true,\n className: 'h-10 w-10 p-0',\n },\n {\n size: 'large',\n iconOnly: true,\n className: 'h-11 w-11 p-0',\n },\n {\n variant: 'plain',\n size: 'small',\n className: 'h-auto px-0 py-0',\n },\n {\n variant: 'plain',\n size: 'medium',\n className: 'h-auto px-0 py-0',\n },\n {\n variant: 'plain',\n size: 'large',\n className: 'h-auto px-0 py-0',\n },\n ],\n defaultVariants: {\n variant: 'primary',\n size: 'medium',\n iconOnly: false,\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n iconOnly,\n asChild = false,\n leftIcon,\n rightIcon,\n children,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button';\n \n // When using asChild, we render children directly without wrapping\n if (asChild) {\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, iconOnly, className }))}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n \n return (\n <Comp\n className={cn(buttonVariants({ variant, size, iconOnly, className }))}\n ref={ref}\n {...props}\n >\n {leftIcon && !iconOnly && (\n <span className=\"inline-flex shrink-0\">{leftIcon}</span>\n )}\n {iconOnly ? leftIcon || children : children}\n {rightIcon && !iconOnly && (\n <span className=\"inline-flex shrink-0\">{rightIcon}</span>\n )}\n </Comp>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\n// Asset URLs from Figma (valid for 7 days)\nconst LOGO_ASSETS = {\n largeDark: 'https://www.figma.com/api/mcp/asset/4d8371e7-dff3-4ec8-bbce-b93185151f4c',\n largeLight: 'https://www.figma.com/api/mcp/asset/8a7267d5-2fb8-494e-a13a-3795b42fde22',\n smallDark: 'https://www.figma.com/api/mcp/asset/9d2e5067-f587-40b6-b0a5-5ce6da0aad4c',\n smallLight: 'https://www.figma.com/api/mcp/asset/f01bbe9b-2dae-44fe-892f-97ff47e10e8e',\n gradientLarge: 'https://www.figma.com/api/mcp/asset/972e7e1a-3343-4868-9c4d-97d6dfce3ce8',\n};\n\nexport interface BrandIconsProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n /**\n * Tamaño del logo\n * @default \"large\"\n */\n size?: 'large' | 'small';\n \n /**\n * Modo de color del logo\n * @default \"dark\"\n */\n mode?: 'dark' | 'light';\n \n /**\n * Si el logo tiene gradiente\n * @default false\n */\n gradient?: boolean;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente BrandIcons - Logo de Chiperos\n * \n * Muestra el logo de la marca Chiperos con diferentes variantes:\n * - Tamaños: large (143x32px) y small (40x32px)\n * - Modos: dark y light\n * - Con o sin gradiente\n */\nconst BrandIcons = React.forwardRef<HTMLImageElement, BrandIconsProps>(\n (\n {\n size = 'large',\n mode = 'dark',\n gradient = false,\n className,\n alt = 'Chiperos Logo',\n ...props\n },\n ref\n ) => {\n // Determinar la URL del asset según las props\n const getLogoSrc = (): string => {\n if (gradient && size === 'large') {\n return LOGO_ASSETS.gradientLarge;\n }\n \n if (size === 'large' && mode === 'dark') {\n return LOGO_ASSETS.largeDark;\n }\n \n if (size === 'large' && mode === 'light') {\n return LOGO_ASSETS.largeLight;\n }\n \n if (size === 'small' && mode === 'dark') {\n return LOGO_ASSETS.smallDark;\n }\n \n if (size === 'small' && mode === 'light') {\n return LOGO_ASSETS.smallLight;\n }\n \n // Default: large dark\n return LOGO_ASSETS.largeDark;\n };\n\n // Determinar las dimensiones según el tamaño\n const dimensions = {\n large: { width: 143, height: 32 },\n small: { width: 40, height: 32 },\n };\n\n const { width, height } = dimensions[size];\n\n return (\n <img\n ref={ref}\n src={getLogoSrc()}\n alt={alt}\n width={width}\n height={height}\n className={cn('inline-block', className)}\n {...props}\n />\n );\n }\n);\n\nBrandIcons.displayName = 'BrandIcons';\n\nexport { BrandIcons, LOGO_ASSETS };\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface CardsGridProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Número de columnas del grid\n * @example 3\n */\n columns: number;\n \n /**\n * Gap entre las cards (en Tailwind units o px)\n * @default 4\n * @example 6 // gap-6\n * @example \"1.5rem\" // custom gap\n */\n gap?: number | string;\n \n /**\n * Número de columnas en tablets (opcional, responsive)\n * @example 2\n */\n tabletColumns?: number;\n \n /**\n * Número de columnas en móviles (opcional, responsive)\n * @default 1\n * @example 1\n */\n mobileColumns?: number;\n \n /**\n * Children (cards u otros componentes)\n */\n children: React.ReactNode;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente CardsGrid\n * \n * Contenedor de grid para organizar cards de forma responsive.\n * Ajusta automáticamente el ancho de las cards al 100% del espacio disponible.\n * \n * @example\n * ```tsx\n * <CardsGrid columns={3} gap={6}>\n * <FeatureCard title=\"Feature 1\" description=\"...\" icon={<Icon />} />\n * <FeatureCard title=\"Feature 2\" description=\"...\" icon={<Icon />} />\n * <FeatureCard title=\"Feature 3\" description=\"...\" icon={<Icon />} />\n * </CardsGrid>\n * ```\n * \n * @example Con responsive\n * ```tsx\n * <CardsGrid columns={3} tabletColumns={2} mobileColumns={1} gap={4}>\n * <ActionCard title=\"Action 1\" description=\"...\" icon={<Icon />} />\n * <ActionCard title=\"Action 2\" description=\"...\" icon={<Icon />} />\n * </CardsGrid>\n * ```\n */\nexport const CardsGrid = React.forwardRef<HTMLDivElement, CardsGridProps>(\n (\n {\n columns,\n gap = 4,\n tabletColumns,\n mobileColumns = 1,\n children,\n className,\n style,\n ...props\n },\n ref\n ) => {\n // Convertir gap a clase de Tailwind si es número\n const getGapClass = () => {\n if (typeof gap === 'number') {\n return `gap-${gap}`;\n }\n return '';\n };\n\n // Crear clases responsive para columnas\n const getColumnsClasses = () => {\n const classes = [];\n \n // Mobile (default)\n classes.push(`grid-cols-${mobileColumns}`);\n \n // Tablet\n if (tabletColumns) {\n classes.push(`md:grid-cols-${tabletColumns}`);\n }\n \n // Desktop\n classes.push(`lg:grid-cols-${columns}`);\n \n return classes.join(' ');\n };\n\n // Style para gap custom (si es string)\n const customStyle = typeof gap === 'string' \n ? { gap, ...style } \n : style;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid w-full',\n getGapClass(),\n getColumnsClasses(),\n className\n )}\n style={customStyle}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // Forzar width 100% en cada card\n return React.cloneElement(child, {\n ...child.props,\n className: cn('w-full', child.props.className),\n } as any);\n }\n return child;\n })}\n </div>\n );\n }\n);\n\nCardsGrid.displayName = 'CardsGrid';\n\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface FeatureCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Título de la característica\n */\n title: string;\n \n /**\n * Descripción de la característica\n */\n description: string;\n \n /**\n * Ícono de la característica (React node)\n */\n icon: React.ReactNode;\n \n /**\n * Background del contenedor del ícono\n * @default \"#e6f8ef\"\n */\n iconBackground?: string;\n \n /**\n * Callback al hacer clic en la card\n */\n onClick?: () => void;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente FeatureCard\n * \n * Card centrada para destacar características o features.\n * Ideal para landing pages, páginas de bienvenida y showcase de características.\n * \n * @example\n * ```tsx\n * <FeatureCard\n * icon={<Lock size={32} color=\"#00995a\" strokeWidth={2} />}\n * title=\"Built for Security\"\n * description=\"Your data is protected by enterprise-grade, zero-trust architecture.\"\n * />\n * ```\n */\nexport const FeatureCard = React.forwardRef<HTMLDivElement, FeatureCardProps>(\n (\n {\n title,\n description,\n icon,\n iconBackground = '#e6f8ef',\n onClick,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n onClick={onClick}\n className={cn(\n 'bg-white border border-[#ecebf0] rounded-lg p-8 flex flex-col items-center gap-8 w-96',\n onClick && 'cursor-pointer hover:shadow-md transition-shadow',\n className\n )}\n {...props}\n >\n {/* Ícono */}\n <div\n className=\"flex items-center justify-center rounded-lg shrink-0\"\n style={{\n width: '56px',\n height: '56px',\n backgroundColor: iconBackground,\n }}\n >\n {icon}\n </div>\n\n {/* Contenido */}\n <div className=\"flex flex-col gap-2 items-center text-center\" style={{ width: '300px' }}>\n {/* Título */}\n <h3\n className=\"text-2xl leading-8 font-medium text-[#312e4d]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {title}\n </h3>\n \n {/* Descripción */}\n <p\n className=\"text-base leading-5 font-normal text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {description}\n </p>\n </div>\n </div>\n );\n }\n);\n\nFeatureCard.displayName = 'FeatureCard';\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n if (!inst._zod) {\n Object.defineProperty(inst, \"_zod\", {\n value: {\n def,\n constr: _,\n traits: new Set(),\n },\n enumerable: false,\n });\n }\n if (inst._zod.traits.has(name)) {\n return;\n }\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n const proto = _.prototype;\n const keys = Object.keys(proto);\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (!(k in inst)) {\n inst[k] = proto[k].bind(inst);\n }\n }\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport function slugify(input) {\n return input\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/[\\s_-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n if (typeof ctor !== \"function\")\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: schema._zod.def.checks,\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","import * as util from \"./util.js\";\nexport const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const mac = (delimiter) => {\n const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export const version = {\n major: 4,\n minor: 1,\n patch: 13,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n // const handleChecksResult = (\n // checkResult: ParsePayload,\n // originalResult: ParsePayload,\n // ctx: ParseContextInternal\n // ): util.MaybeAsync<ParsePayload> => {\n // // if the checks mutated the value && there are no issues, re-parse the result\n // if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n // return inst._zod.parse(checkResult, ctx);\n // return originalResult;\n // };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: def.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv4`;\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv6`;\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `mac`;\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const parts = payload.value.split(\"/\");\n try {\n if (parts.length !== 2)\n throw new Error();\n const [address, prefix] = parts;\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64\";\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64url\";\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (result.value === undefined) {\n if (key in input) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n // iterate over input keys\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n for (const key in input) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n // const sh = def.shape;\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n if (!desc?.get) {\n const sh = def.shape;\n Object.defineProperty(def, \"shape\", {\n get: () => {\n const newSh = { ...sh };\n Object.defineProperty(def, \"shape\", {\n value: newSh,\n });\n return newSh;\n },\n });\n }\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {};`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n const reversedIndex = [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n const optStart = reversedIndex === -1 ? 0 : items.length - reversedIndex;\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n const values = def.keyType._zod.values;\n if (values) {\n payload.value = {};\n const recordKeys = new Set();\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!recordKeys.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n const values = new Set(def.values);\n inst._zod.values = values;\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (result.issues.length && input === undefined) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, payload.value));\n return handleOptionalResult(result, payload.value);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType?._zod?.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType?._zod?.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // let _innerType!: any;\n // util.defineLazy(def, \"getter\", () => {\n // if (!_innerType) {\n // _innerType = def.getter();\n // }\n // return () => _innerType;\n // });\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType?._zod?.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType?._zod?.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType?._zod?.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType?._zod?.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","var _a;\nexport const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n","import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _mac(Class, params) {\n return new Class({\n type: \"string\",\n format: \"mac\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\n// slugify\nexport function _slugify() {\n return _overwrite((input) => util.slugify(input));\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _superRefine(fn) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function describe(description) {\n const ch = new checks.$ZodCheck({ check: \"describe\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, description });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\nexport function meta(metadata) {\n const ch = new checks.$ZodCheck({ check: \"meta\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, ...metadata });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone(util.mergeDefs(def, {\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }));\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // encoding/decoding\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n inst.slugify = () => inst.check(checks.slugify());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: /^https?$/,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodMAC.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => {\n return def.shape;\n });\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.safeExtend = (incoming) => {\n return util.safeExtend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n shape: shape ?? {},\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\",\"(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:241|349)0\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|[34]\\\\d\\\\d)|91(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79]))))\\\\d{3}|(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8])|8(?:55|6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"(?:[025-7]\\\\d|44)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[024-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|8)\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"[1-467]\\\\d{9,10}|55[0-46-9]\\\\d{8}|[34]\\\\d{7}|55\\\\d{7,8}|(?:5[0-46-9]|[89]\\\\d)\\\\d{7,9}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37|86)\",\"300|4(?:0(?:0|20)|370|864)\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[178]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-6]|7[246]|8[2-4]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|[78]\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"60|809\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9(?:10|[2-9])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|9[14]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-36-9]|95[0-3])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|3[13])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,\"0|180020\",0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-5])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|5[01]))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0|180020\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"[2-69]\\\\d{8}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{6}\",[7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"[2-589]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0|180020\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689])\\\\d|8(?:[14-6]\\\\d|2[0-79]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,11}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[03]\"]]],0,0,0,0,0,0,[[\"0(?:669[0-79]\\\\d{1,6}|831\\\\d{2,8})|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0|180020\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|427|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[47]\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[2569]\\\\d{4,6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33622|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[2457]\\\\d|33|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|78|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2679]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:[19]|2[2-46-9]|3[3-9])|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:(?:18|4[0679]|5[03])\\\\d|2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9]))\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[016-8]\\\\d|2[0-8]|5[0-5]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|[67]\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[67]\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-6])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"(?:20|9\\\\d)\\\\d{8}|[78]\\\\d{9,13}\",[10,11,12,13,14],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:222|444|(?:55|8\\\\d)\\\\d|666|777|999)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-9]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[136]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,0,[[\"336(?:[013-9]\\\\d|2[013-9])\\\\d{5}|(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15-7]|6[0-35-79]|7[1-37-9]))\\\\d{7}\",[10]],[\"9\\\\d{9}\",[10]],[\"8(?:0[04]|108\\\\d{3})\\\\d{7}\"],[\"80[39]\\\\d{7}\",[10]],[\"808\\\\d{7}\",[10]]],\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"(?:[15]\\\\d|800|92)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|[6-8]\\\\d|90)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-9]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[25-7]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[25-7]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|30|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[236-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"(?:[0-57-9]\\\\d|66)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"\\\\d\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"3052(?:0[0-8]|[1-9]\\\\d)\\\\d{4}|(?:2742|305[3-9])\\\\d{6}|(?:472|983)[2-47-9]\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|2\\\\d{3,4}|(?:[49]\\\\d|80)\\\\d{5}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d{4,5})\",\"$1\",[\"21\"]],[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|[579]\\\\d|63)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[579]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function _readOnlyError(r) { throw new TypeError('\"' + r + '\" is read-only'); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js';\n\n// Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\nvar V2 = '1.0.18';\n\n// Added \"idd_prefix\" and \"default_idd_prefix\".\nvar V3 = '1.2.0';\n\n// Moved `001` country code to \"nonGeographic\" section of metadata.\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n return _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return;\n // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n }\n\n // Deprecated.\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n }\n\n // Deprecated.\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n }\n\n // Deprecated.\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n }\n\n // Deprecated.\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n }\n\n // Deprecated.\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n }\n\n // Deprecated.\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n }\n\n // Deprecated.\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n }\n\n // Deprecated.\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n }\n\n // Deprecated.\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n }\n\n // Deprecated.\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n }\n\n // Deprecated.\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n }\n\n // Deprecated.\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n }\n\n // Deprecated.\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n }\n\n // Deprecated.\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n}();\nexport { Metadata as default };\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n return _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n }\n\n // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n\n // Is always present.\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n }\n\n // Is only present when a country supports multiple IDD prefixes.\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n }\n\n // \"possible length\" data is always present in Google's metadata.\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n }\n\n // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n }\n\n // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n }\n\n // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n }\n // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n}();\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n this._format = format;\n this.metadata = metadata;\n }\n return _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n\n // Checks whether national prefix formatting rule contains national prefix.\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() &&\n // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\n // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n this.type = type;\n this.metadata = metadata;\n }\n return _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n}();\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n case 'MOBILE':\n return types[1];\n case 'TOLL_FREE':\n return types[2];\n case 'PREMIUM_RATE':\n return types[3];\n case 'PERSONAL_NUMBER':\n return types[4];\n case 'VOICEMAIL':\n return types[5];\n case 'UAN':\n return types[6];\n case 'PAGER':\n return types[7];\n case 'VOIP':\n return types[8];\n case 'SHARED_COST':\n return types[9];\n }\n}\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n }\n\n // `country_phone_code_to_countries` was renamed to `country_calling_codes` in `1.0.18`.\n // For that reason, it's not used in this detection algorithm.\n // Instead, it detects by `countries: {}` property existence.\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n}\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n if (metadata.hasCountry(country)) {\n return metadata.selectNumberingPlan(country).ext();\n }\n return DEFAULT_EXT_PREFIX;\n}\n\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n if (metadata.hasCountry(country)) {\n return metadata.selectNumberingPlan(country).countryCallingCode();\n }\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\nfunction setVersion(metadata) {\n var version = metadata.version;\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n}\n\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import Metadata from '../metadata.js';\nimport mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, country, metadata) {\n return checkNumberLengthForType(nationalNumber, country, undefined, metadata);\n}\n\n// Checks whether a number is possible for a certain `country` based on the number length.\n//\n// This function is not supported by metadata generated with ancient versions of\n// `libphonenumber-js` (before version `1.0.18`) which didn't include \"possible lengths\".\n//\n// There was also a known issue with `checkNumberLength()` function:\n// if a number is possible only in a certain `country` among several `countries`\n// that share the same \"country calling code\", that function would check\n// the possibility of the phone number only in the \"main\" `country` for the \"country calling code\"\n// and would not check if it's actually be possible in the speciifc `country`.\n//\n// For example, \"+1310xxxx\" numbers are valid in Canada.\n// However, they are not possible in the US due to being too short.\n// Since Canada and the US share the same country calling code — \"+1\" —\n// `checkNumberLength()` function used to return not \"IS_POSSIBLE\" for \"+1310xxxx\" numbers.\n//\n// In such cases, when using \"/max\" metadata, `isValid()` could output `true`\n// but at the same time `isPossible()` could output `false`, which was contradictory.\n//\n// See https://issuetracker.google.com/issues/335892662 for the discusson in Google's issues.\n//\n// The solution suggested by Google was implemented: an optional `country` argument\n// was added to `checkNumberLength()` function. If present, that `country` will be used\n// to check phone number length for that specific `country` rather than the \"main\" country\n// for the shared \"country calling code\".\n//\nexport function checkNumberLengthForType(nationalNumber, country, type, metadata) {\n // If the exact `country` is specified, it's no necessarily already selected in `metadata`.\n // Most likely, in cases when there're multiple countries corresponding to the same\n // \"country calling code\", the \"main\" country for that \"country calling code\" will be selected.\n if (country) {\n metadata = new Metadata(metadata.metadata);\n metadata.selectNumberingPlan(country);\n }\n var type_info = metadata.type(type);\n\n // There should always be \"<possiblePengths/>\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths();\n // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, country, 'MOBILE', metadata);\n }\n var mobile_type = metadata.type('MOBILE');\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths());\n // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n }\n // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n var actual_length = nationalNumber.length;\n\n // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n }\n\n // We skip the first element since we've already checked it.\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n metadata = new Metadata(metadata);\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata.selectNumberingPlan(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n }\n\n // Old metadata (< 1.0.18) had no \"possible length\" data.\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, input.country, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, country, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, country, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regularExpressionText) {\n // If the assigning of the `''` default value is moved to the arguments above,\n // the code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regularExpressionText + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL'];\n\n// Finds out national phone number type (fixed line, mobile, etc)\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n\n // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\n // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n\n // Is this national number even valid for this country\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n }\n\n // Is it fixed line number\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n /* istanbul ignore if */\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n return 'FIXED_LINE';\n }\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n if (!type || !type.pattern()) {\n return false;\n }\n // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n\n // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n }\n\n // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","import Metadata from '../metadata.js';\n\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return [];\n }\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n _metadata.selectNumberingPlan(country);\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2;\n\n// The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\nexport var MAX_LENGTH_FOR_NSN = 17;\n\n// The maximum length of the country calling code.\nexport var MAX_LENGTH_COUNTRY_CODE = 3;\n\n// Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\";\n\n// `DASHES` will be right after the opening square bracket of the \"character class\"\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\";\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\";\n\n// Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\";\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n }\n // Check if the number is IDD-prefixed.\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n }\n // Strip IDD prefix.\n number = number.slice(number.match(IDDPrefixPattern)[0].length);\n // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode;\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule());\n // If there's more than one captured group,\n // then carrier code is the second one.\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n }\n // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length);\n // If there's at least one captured group,\n // then carrier code is the first one.\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n }\n // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n var nationalPrefix;\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup);\n // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\n\n// Returns the exact country that the `nationalPhoneNumber` belongs to\n// in cases of ambiguity, i.e. when multiple countries share the same \"country calling code\".\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n // const matchingCountries = []\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.selectNumberingPlan(country);\n // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n }\n // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // When multiple countries share the same \"country calling code\",\n // type patterns aren't guaranteed to be unique among them.\n // For example, both `US` and `CA` have the same pattern for `toll_free` numbers.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417147572\n //\n // That means that this `if` condition could be `true` for multiple countries from the list.\n // Currently, it just returns the first one, which is also the \"main\" country for the \"country calling code\".\n // In an example with `toll_free` numbers above, `\"US\"` would be returned even though\n // it could as well be `\"CA\"`.\n //\n // There was also a time when this attempted to be overly smart\n // and kept track of all such multiple matching countries\n // and then picked the one that matched the `defaultCountry`, if provided.\n // For example, with `toll_free` numbers above, and with `defaultCountry: \"CA\"`,\n // it would've returned `\"CA\"` instead of `\"US\"`.\n // Later it turned out that such \"overly smart\" behavior turned out to be just confusing,\n // so this \"overly smart\" country detection was reverted to returning the \"main\" country\n // for the \"country calling code\".\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n //\n return country;\n //\n // The \"overly smart\" behavior code:\n //\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t} else {\n // \t\tmatchingCountries.push(country)\n // \t}\n // } else {\n // \treturn country\n // }\n }\n }\n\n // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\n// Returns the exact country for the `nationalNumber`\n// that belongs to the specified \"country calling code\".\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n metadata = _ref.metadata;\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return;\n }\n // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryByCallingCode from './getCountryByCallingCode.js';\n\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {string?} country — Country, if known.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\nexport default function extractNationalNumber(number, country, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n if (metadata.numberingPlan.possibleLengths()) {\n // If an exact `country` is not specified, attempt to detect it from the assumed national number.\n if (!country) {\n country = getCountryByCallingCode(metadata.numberingPlan.callingCode(), {\n nationalNumber: nationalNumber,\n metadata: metadata\n });\n }\n\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, country, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n\n// In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n }\n // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n return true;\n}\nfunction isPossibleIncompleteNationalNumber(nationalNumber, country, metadata) {\n switch (checkNumberLength(nationalNumber, country, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string} [country] — Exact country of the phone number.\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, defaultCountry, defaultCallingCode, metadata) {\n var countryCallingCode = country || defaultCountry ? getCountryCallingCode(country || defaultCountry, metadata) : defaultCallingCode;\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country || defaultCountry, countryCallingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, country, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n var _extractNationalNumbe2 = extractNationalNumber(number, country, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber;\n\n // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, country, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Country.\r\n * @param {string} [defaultCountry] — Default country.\r\n * @param {string} [defaultCallingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', null, 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', null, 'RU', null, metadata)\r\n */\nexport default function extractCountryCallingCode(number, country, defaultCountry, defaultCallingCode, metadata) {\n if (!number) {\n return {};\n }\n var isNumberWithIddPrefix;\n\n // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country || defaultCountry, defaultCallingCode, metadata);\n // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || defaultCountry || defaultCallingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, defaultCountry, defaultCallingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n }\n\n // `number` can only be international at this point.\n\n // Fast abortion: country codes do not begin with a '0'\n if (number[1] === '0') {\n return {};\n }\n metadata = new Metadata(metadata);\n\n // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n var i = 2;\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n i++;\n }\n return {};\n}\n\n// The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import { VALID_PUNCTUATION } from '../constants.js';\n\n// Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js';\n\n// This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() :\n // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata.js';\n\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/;\n\n// For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","import { VALID_DIGITS } from '../../constants.js';\n\n// The RFC 3966 format for extensions.\nvar RFC3966_EXTN_PREFIX = ';ext=';\n\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n var extLimitWhenNotSure = '6';\n\n /** @type {string} */\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\";\n // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n /** @type {string} */\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n var optionalExtnSuffix = \"#?\";\n\n // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n /** @type {string} */\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\n // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n /** @type {string} */\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\n // When extension is not separated clearly.\n /** @type {string} */\n var ambiguousSeparator = \"[- ]+\";\n // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n /** @type {string} */\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\";\n // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n /** @type {string} */\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n\n /** @type {string} */\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n\n /** @type {string} */\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n\n // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js';\n\n// Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}';\n//\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*';\n\n// This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER +\n// Phone number extensions\n'(?:' + createExtensionPattern() + ')?';\n\n// The combined regular expression for valid phone numbers:\n//\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp(\n// Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' +\n// Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i');\n\n// Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}\n\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport isViablePhoneNumber from './isViablePhoneNumber.js';\n\n// https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nexport function parseRFC3966(text) {\n var number;\n var ext;\n\n // Replace \"tel:\" with \"tel=\" for parsing convenience.\n text = text.replace(/^tel:/, 'tel=');\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n switch (name) {\n case 'tel':\n number = value;\n break;\n case 'ext':\n ext = value;\n break;\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n break;\n }\n }\n\n // If the phone number is not viable, then abort.\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n var result = {\n number: number\n };\n if (ext) {\n result.ext = ext;\n }\n return result;\n}\n\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n if (!number) {\n return '';\n }\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\n\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n // Using ES6 \"rest spread\" syntax here didn't work with `babel`/`istanbul`\n // for some weird reason: this line of code would cause the code coverage\n // to show as not 100%. That's because `babel`/`istanbul`, for some weird reason,\n // apparently doesn't know how to properly exclude Babel polyfills from code coverage.\n //\n // options = { ...DEFAULT_OPTIONS, ...options }\n //\n options = merge({}, DEFAULT_OPTIONS, options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n metadata = new Metadata(metadata);\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n metadata.selectNumberingPlan(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\n // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n var number;\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n case 'IDD':\n if (!options.fromCountry) {\n return;\n // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n if (!format) {\n return number;\n }\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\nexport function chooseFormatForNumber(availableFormats, nationalNumber) {\n // Using a `for ... of` loop here didn't work with `babel`/`istanbul`:\n // for some weird reason, it showed code coverage less than 100%.\n // That's because `babel`/`istanbul`, for some weird reason,\n // apparently doesn't know how to properly exclude Babel polyfills from code coverage.\n //\n // for (const format of availableFormats) { ... }\n //\n return pickFirstMatchingElement(availableFormats, function (format) {\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1];\n // If leading digits don't match then move on to the next phone number format\n if (nationalNumber.search(lastLeadingDigitsPattern) !== 0) {\n return false;\n }\n }\n // Check that the national number matches the phone number format regular expression\n return matchesEntirely(nationalNumber, format.pattern());\n });\n}\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata);\n // When calling within the same country calling code.\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata);\n // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n }\n // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n return formattedNumber;\n }\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\nfunction merge() {\n var i = 1;\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n while (i < objects.length) {\n if (objects[i]) {\n for (var key in objects[i]) {\n objects[0][key] = objects[i][key];\n }\n }\n i++;\n }\n return objects[0];\n}\nfunction pickFirstMatchingElement(elements, testFunction) {\n var i = 0;\n while (i < elements.length) {\n if (testFunction(elements[i])) {\n return elements[i];\n }\n i++;\n }\n}\n//# sourceMappingURL=format.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Metadata, { validateMetadata } from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js';\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport isObject from './helpers/isObject.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n // Validate `countryOrCountryCallingCode` argument.\n if (!countryOrCountryCallingCode) {\n throw new TypeError('First argument is required');\n }\n if (typeof countryOrCountryCallingCode !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n // In case of public API use: `constructor(number, metadata)`.\n // Transform the arguments from `constructor(number, metadata)` to\n // `constructor(countryOrCountryCallingCode, nationalNumber, metadata)`.\n if (countryOrCountryCallingCode[0] === '+' && !nationalNumber) {\n throw new TypeError('`metadata` argument not passed');\n }\n if (isObject(nationalNumber) && isObject(nationalNumber.countries)) {\n metadata = nationalNumber;\n var e164Number = countryOrCountryCallingCode;\n if (!E164_NUMBER_REGEXP.test(e164Number)) {\n throw new Error('Invalid `number` argument passed: must consist of a \"+\" followed by digits');\n }\n var _extractCountryCallin = extractCountryCallingCode(e164Number, undefined, undefined, undefined, metadata),\n _countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n nationalNumber = number;\n countryOrCountryCallingCode = _countryCallingCode;\n if (!nationalNumber) {\n throw new Error('Invalid `number` argument passed: too short');\n }\n }\n\n // Validate `nationalNumber` argument.\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` argument is required');\n }\n if (typeof nationalNumber !== 'string') {\n throw new TypeError('`nationalNumber` argument must be a string');\n }\n\n // Validate `metadata` argument.\n validateMetadata(metadata);\n\n // Initialize properties.\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n this.getMetadata = function () {\n return metadata;\n };\n }\n return _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n }\n\n // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n}();\nexport { PhoneNumber as default };\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson);\n // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\nvar E164_NUMBER_REGEXP = /^\\+\\d+$/;\n//# sourceMappingURL=PhoneNumber.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _wrapNativeSuper(t) { var r = \"function\" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }\nfunction _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf(\"[native code]\"); } catch (n) { return \"function\" == typeof t; } }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n function ParseError(code) {\n var _this;\n _classCallCheck(this, ParseError);\n _this = _callSuper(this, ParseError, [code]);\n // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n Object.setPrototypeOf(_this, ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n _inherits(ParseError, _Error);\n return _createClass(ParseError);\n}(/*#__PURE__*/_wrapNativeSuper(Error));\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import createExtensionPattern from './createExtensionPattern.js';\n\n// Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i');\n\n// Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n if (start < 0) {\n return {};\n }\n // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '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 \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\nexport default function parseDigits(string) {\n var result = '';\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n if (digit) {\n result += digit;\n }\n }\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { parseDigit } from './helpers/parseDigits.js';\n\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\nexport default function parseIncompletePhoneNumber(string) {\n var result = '';\n // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n return result;\n}\n\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} eventListener - An optional \"on event\" function.\r\n * @return {string?} The parsed character.\r\n */\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, eventListener) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `eventListener` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `eventListener` argument.\n //\n // The addition of the `eventListener` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof eventListener === 'function') {\n eventListener('end');\n }\n return;\n }\n return '+';\n }\n // Allow digits.\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\n\nimport { VALID_DIGITS\n// PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g');\n\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_);\n // If no phone-context parameter is present\n if (indexOfPhoneContext < 0) {\n return null;\n }\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length;\n // If phone-context parameter is empty\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart);\n // If phone-context is not the last parameter\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n if (phoneContext.length === 0) {\n return false;\n }\n\n // Does phone-context value match pattern of global-number-digits or domainname.\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n var phoneNumberString;\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = '';\n\n // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n }\n\n // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber;\n // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n /* istanbul ignore else */\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n }\n\n // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n }\n // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\n\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js';\n// import { parseRFC3966 } from './helpers/RFC3966.js'\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\n// import stripIddPrefix from './helpers/stripIddPrefix.js'\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js';\n\n// We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\nvar MAX_INPUT_STRING_LENGTH = 250;\n\n// This consists of the plus symbol, digits, and arabic-indic digits.\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']');\n\n// Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\n// Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n\n // Validate `defaultCountry`.\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n }\n\n // Parse the phone number.\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error;\n\n // If the phone number is not viable then return nothing.\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n throw new ParseError('NOT_A_NUMBER');\n }\n return {};\n }\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n return {};\n }\n\n // Validate national (significant) number length.\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n }\n // Google's demo just throws an error in this case.\n return {};\n }\n\n // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n }\n // Google's demo just throws an error in this case.\n return {};\n }\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n if (country) {\n phoneNumber.country = country;\n }\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n if (ext) {\n phoneNumber.ext = ext;\n }\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n }\n\n // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n }\n\n // isInternational: countryCallingCode !== undefined\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, country, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n return;\n }\n if (extract === false) {\n return text;\n }\n // Attempt to extract a possible number from the string passed in\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n if (startsAt < 0) {\n return;\n }\n return text\n // Trim everything to the left of the phone number\n .slice(startsAt)\n // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n });\n // If the phone number is not viable, then abort.\n if (!number) {\n return {};\n }\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n return {};\n }\n // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n var withExtensionStripped = extractExtension(number);\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n return {\n number: number\n };\n}\n\n/**\r\n * Creates `parse()` result object.\r\n */\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n if (ext) {\n result.ext = ext;\n }\n return result;\n}\n\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), undefined, defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n // The exact country of the phone number\n var country;\n\n // If `formattedPhoneNumber` is passed in \"international\" format,\n // choose a country by `countryCallingCode`.\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n }\n // Else, if `formattedPhoneNumber` is passed in \"national\" format,\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), country, metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n metadata: metadata\n });\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n if (exactCountry === '001') {\n // Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.selectNumberingPlan(country);\n }\n }\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport isObject from './helpers/isObject.js';\n\n// Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n var text;\n var options;\n var metadata;\n\n // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.');\n\n // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n }\n // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","import parsePhoneNumberWithError_ from './parsePhoneNumberWithError_.js';\nimport normalizeArguments from './normalizeArguments.js';\nexport default function parsePhoneNumberWithError() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n return parsePhoneNumberWithError_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumberWithError() {\r\n\treturn withMetadataArgument(_parsePhoneNumberWithError, arguments)\r\n}\r\n","import React, { forwardRef, InputHTMLAttributes, useState, useEffect } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Eye, EyeOff } from 'lucide-react';\nimport { z } from 'zod';\nimport { parsePhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport interface InputValidation {\n /**\n * Validate as email\n */\n email?: boolean | string; // true or custom error message\n \n /**\n * Validate as number\n */\n number?: boolean | string;\n \n /**\n * Validate as phone number for specific country\n */\n phone?: {\n country?: CountryCode; // e.g., 'US', 'CO', 'MX', 'AR'\n message?: string;\n };\n \n /**\n * Minimum length validation\n */\n minLength?: {\n value: number;\n message?: string;\n };\n \n /**\n * Maximum length validation\n */\n maxLength?: {\n value: number;\n message?: string;\n };\n \n /**\n * Custom regex validation\n */\n regex?: {\n pattern: RegExp;\n message?: string;\n };\n \n /**\n * Required field validation\n */\n required?: boolean | string;\n}\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'> {\n /**\n * The current value of the input\n */\n value?: string;\n \n /**\n * Callback fired when the value changes\n */\n onChange?: (text: string) => void;\n \n /**\n * Whether the input is disabled\n */\n disabled?: boolean;\n \n /**\n * Error message or state - shows error styling when truthy\n * External error (overrides validation errors)\n */\n error?: string | boolean;\n \n /**\n * Placeholder text\n */\n placeholder?: string;\n \n /**\n * Input type (text, password, email, etc.)\n */\n type?: string;\n \n /**\n * Additional CSS classes\n */\n className?: string;\n \n /**\n * Show password toggle for password inputs\n */\n showPasswordToggle?: boolean;\n \n /**\n * Validation rules\n */\n validation?: InputValidation;\n \n /**\n * Validate on change (default: true)\n */\n validateOnChange?: boolean;\n \n /**\n * Validate on blur (default: true)\n */\n validateOnBlur?: boolean;\n}\n\nconst validateInput = (value: string, validation?: InputValidation): string | null => {\n if (!validation) return null;\n \n // Required validation\n if (validation.required && !value) {\n return typeof validation.required === 'string' \n ? validation.required \n : 'This field is required';\n }\n \n // Skip other validations if value is empty and not required\n if (!value) return null;\n \n // Email validation\n if (validation.email) {\n const emailSchema = z.string().email();\n const result = emailSchema.safeParse(value);\n if (!result.success) {\n return typeof validation.email === 'string'\n ? validation.email\n : 'Please enter a valid email address';\n }\n }\n \n // Number validation\n if (validation.number) {\n const numberSchema = z.string().regex(/^-?\\d*\\.?\\d+$/);\n const result = numberSchema.safeParse(value);\n if (!result.success) {\n return typeof validation.number === 'string'\n ? validation.number\n : 'Please enter a valid number';\n }\n }\n \n // Phone validation\n if (validation.phone) {\n try {\n const phoneNumber = parsePhoneNumber(value, validation.phone.country);\n if (!phoneNumber || !phoneNumber.isValid()) {\n return validation.phone.message || \n `Please enter a valid phone number${validation.phone.country ? ` for ${validation.phone.country}` : ''}`;\n }\n } catch (error) {\n return validation.phone.message || 'Please enter a valid phone number';\n }\n }\n \n // MinLength validation\n if (validation.minLength) {\n const minLengthSchema = z.string().min(validation.minLength.value);\n const result = minLengthSchema.safeParse(value);\n if (!result.success) {\n return validation.minLength.message || \n `Must be at least ${validation.minLength.value} characters`;\n }\n }\n \n // MaxLength validation\n if (validation.maxLength) {\n const maxLengthSchema = z.string().max(validation.maxLength.value);\n const result = maxLengthSchema.safeParse(value);\n if (!result.success) {\n return validation.maxLength.message || \n `Must be at most ${validation.maxLength.value} characters`;\n }\n }\n \n // Custom regex validation\n if (validation.regex) {\n if (!validation.regex.pattern.test(value)) {\n return validation.regex.message || 'Invalid format';\n }\n }\n \n return null;\n};\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n value = '',\n onChange,\n disabled = false,\n error,\n placeholder,\n type = 'text',\n className,\n showPasswordToggle = false,\n validation,\n validateOnChange = true,\n validateOnBlur = true,\n ...props\n },\n ref\n ) => {\n const [isFocused, setIsFocused] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [validationError, setValidationError] = useState<string | null>(null);\n \n const hasError = !!error || !!validationError;\n const displayError = typeof error === 'string' ? error : validationError;\n const isPassword = type === 'password' && showPasswordToggle;\n const inputType = isPassword && showPassword ? 'text' : type;\n \n // Validate on mount if value exists\n useEffect(() => {\n if (value && validation) {\n const errorMsg = validateInput(value, validation);\n setValidationError(errorMsg);\n }\n }, []);\n \n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n \n if (onChange) {\n onChange(newValue);\n }\n \n // Validate on change if enabled\n if (validateOnChange && validation) {\n const errorMsg = validateInput(newValue, validation);\n setValidationError(errorMsg);\n }\n };\n \n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n if (props.onFocus) {\n props.onFocus(e);\n }\n };\n \n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n \n // Validate on blur if enabled\n if (validateOnBlur && validation) {\n const errorMsg = validateInput(e.target.value, validation);\n setValidationError(errorMsg);\n }\n \n if (props.onBlur) {\n props.onBlur(e);\n }\n };\n \n const togglePasswordVisibility = () => {\n setShowPassword(!showPassword);\n };\n \n // Base styles\n const containerStyles = cn(\n // Layout\n 'flex items-center gap-2',\n 'w-full h-12', // 48px height\n 'px-4 py-2', // 16px horizontal, 8px vertical\n 'rounded',\n \n // Typography\n 'text-base leading-[18px]',\n \n // Border and background\n 'border transition-colors',\n disabled && 'bg-[#f4f4f4] cursor-not-allowed',\n !disabled && 'bg-white',\n \n // Border colors based on state\n hasError && !disabled && 'border-[#ff305f]',\n !hasError && isFocused && !disabled && 'border-[#a29fba]',\n !hasError && !isFocused && 'border-[#ecebf0]',\n \n className\n );\n \n const inputStyles = cn(\n 'flex-1 w-full h-full',\n 'bg-transparent border-none outline-none',\n 'text-[#312e4d] text-base leading-[18px]',\n 'placeholder:text-[#7d79a0]',\n disabled && 'text-[#a29fba] cursor-not-allowed',\n disabled && 'placeholder:text-[#a29fba]',\n );\n \n const iconButtonStyles = cn(\n 'flex items-center justify-center',\n 'w-5 h-5 shrink-0',\n 'text-[#312e4d]',\n 'cursor-pointer hover:opacity-70 transition-opacity',\n disabled && 'cursor-not-allowed opacity-50',\n );\n \n return (\n <div className=\"w-full\">\n <div className={containerStyles} data-testid=\"input-container\">\n <input\n ref={ref}\n type={inputType}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n disabled={disabled}\n placeholder={placeholder}\n className={inputStyles}\n data-testid=\"input\"\n aria-invalid={hasError}\n aria-disabled={disabled}\n {...props}\n />\n \n {isPassword && (\n <button\n type=\"button\"\n onClick={togglePasswordVisibility}\n disabled={disabled}\n className={iconButtonStyles}\n data-testid=\"password-toggle\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n tabIndex={-1}\n >\n {showPassword ? (\n <EyeOff size={20} />\n ) : (\n <Eye size={20} />\n )}\n </button>\n )}\n </div>\n \n {displayError && (\n <p \n className=\"mt-1 text-sm text-[#ff305f]\" \n data-testid=\"input-error\"\n role=\"alert\"\n >\n {displayError}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface KPIComparisonCustomProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Ícono izquierdo personalizado\n */\n icon: React.ReactNode;\n \n /**\n * Texto principal (ej: porcentaje, valor, etc.)\n */\n primaryText: string;\n \n /**\n * Color del texto principal\n * @default \"#312e4d\"\n */\n primaryTextColor?: string;\n \n /**\n * Texto secundario/label\n */\n secondaryText?: string;\n \n /**\n * Color del texto secundario\n * @default \"#575385\"\n */\n secondaryTextColor?: string;\n \n /**\n * Ícono derecho opcional (ej: warning)\n */\n rightIcon?: React.ReactNode;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente KPIComparisonCustom\n * \n * Versión completamente personalizable de KPIComparison donde puedes\n * especificar cualquier ícono, texto y colores sin limitaciones de\n * tendencias predefinidas.\n * \n * @example\n * ```tsx\n * <KPIComparisonCustom\n * icon={<CustomIcon />}\n * primaryText=\"1.2M\"\n * primaryTextColor=\"#00995a\"\n * secondaryText=\"total users\"\n * rightIcon={<InfoIcon />}\n * />\n * ```\n */\nexport const KPIComparisonCustom = React.forwardRef<HTMLDivElement, KPIComparisonCustomProps>(\n (\n {\n icon,\n primaryText,\n primaryTextColor = '#312e4d',\n secondaryText,\n secondaryTextColor = '#575385',\n rightIcon,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-between w-full',\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-1\">\n {/* Ícono izquierdo */}\n <div className=\"shrink-0\">\n {icon}\n </div>\n \n {/* Texto principal */}\n <span\n className=\"text-xs leading-[14px] font-normal whitespace-nowrap\"\n style={{ \n fontFamily: 'Causten Round, sans-serif',\n color: primaryTextColor,\n }}\n >\n {primaryText}\n </span>\n \n {/* Texto secundario */}\n {secondaryText && (\n <span\n className=\"text-xs leading-[14px] font-normal whitespace-nowrap\"\n style={{ \n fontFamily: 'Causten Round, sans-serif',\n color: secondaryTextColor,\n }}\n >\n {secondaryText}\n </span>\n )}\n </div>\n \n {/* Ícono derecho opcional */}\n {rightIcon && (\n <div className=\"shrink-0\">\n {rightIcon}\n </div>\n )}\n </div>\n );\n }\n);\n\nKPIComparisonCustom.displayName = 'KPIComparisonCustom';\n\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface KPIComparisonProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Porcentaje de cambio (puede ser positivo o negativo)\n * @example 1.0, -10.5\n */\n percentage: number;\n \n /**\n * Tendencia del KPI\n * - 'positive': Verde con flecha arriba\n * - 'negative': Rojo con flecha abajo\n */\n trend: 'positive' | 'negative';\n \n /**\n * Texto descriptivo al lado del porcentaje\n * @default \"KPI comparison\"\n */\n label?: string;\n \n /**\n * Mostrar ícono de alerta/warning\n * @default false\n */\n showWarning?: boolean;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n// Ícono de tendencia arriba (TrendUp)\nconst TrendUpIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M11 3L6.5 7.5L4 5L1 8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8 3H11V6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// Ícono de tendencia abajo (TrendDown)\nconst TrendDownIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M11 9L6.5 4.5L4 7L1 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8 9H11V6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n// Ícono de advertencia (WarningCircle)\nconst WarningIcon: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6.375\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n />\n <path\n d=\"M8 4.5V8.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n />\n <circle\n cx=\"8\"\n cy=\"11\"\n r=\"0.5\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\n/**\n * Componente KPIComparison\n * \n * Muestra una comparación de KPI con tendencia (positiva o negativa)\n * y un ícono de alerta opcional.\n * \n * @example\n * ```tsx\n * <KPIComparison percentage={1.0} trend=\"positive\" label=\"KPI comparison\" />\n * <KPIComparison percentage={-10} trend=\"negative\" showWarning={true} />\n * ```\n */\nexport const KPIComparison = React.forwardRef<HTMLDivElement, KPIComparisonProps>(\n (\n {\n percentage,\n trend,\n label = 'KPI comparison',\n showWarning = false,\n className,\n ...props\n },\n ref\n ) => {\n const isPositive = trend === 'positive';\n const formattedPercentage = percentage > 0 ? `+${percentage.toFixed(1)}%` : `${percentage.toFixed(1)}%`;\n \n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-between w-full',\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-1\">\n {isPositive ? (\n <TrendUpIcon className=\"text-[#00995a] shrink-0\" />\n ) : (\n <TrendDownIcon className=\"text-[#d4002c] shrink-0\" />\n )}\n \n <span\n className={cn(\n 'text-xs leading-[14px] font-normal whitespace-nowrap',\n isPositive ? 'text-[#00995a]' : 'text-[#d4002c]'\n )}\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {formattedPercentage}\n </span>\n \n <span\n className=\"text-xs leading-[14px] font-normal text-[#575385] whitespace-nowrap\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {label}\n </span>\n </div>\n \n {showWarning && (\n <WarningIcon className=\"text-[#d4002c] shrink-0\" />\n )}\n </div>\n );\n }\n);\n\nKPIComparison.displayName = 'KPIComparison';\n\n// Export custom variant\nexport { KPIComparisonCustom } from './KPIComparisonCustom';\nexport type { KPIComparisonCustomProps } from './KPIComparisonCustom';\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface KPICardCustomProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content'> {\n /**\n * Título de la card\n */\n title: string;\n \n /**\n * Contenido principal (puede ser cualquier React node)\n */\n content: React.ReactNode;\n \n /**\n * Contenido secundario/descriptivo (opcional)\n */\n description?: React.ReactNode;\n \n /**\n * Contenido del footer (opcional)\n */\n footer?: React.ReactNode;\n \n /**\n * Tag personalizado (opcional)\n */\n tag?: {\n label: string;\n variant?: 'default' | 'red' | 'green' | 'blue' | 'yellow';\n };\n \n /**\n * Ícono personalizado\n */\n icon: React.ReactNode;\n \n /**\n * Callback al hacer clic en la card\n */\n onClick?: () => void;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\nconst tagStyles = {\n default: {\n bg: '#f4f4f4',\n border: '#c6c6c6',\n text: '#6e6f6e',\n },\n red: {\n bg: '#ffecf0',\n border: '#ff8ea7',\n text: '#ff305f',\n },\n green: {\n bg: '#e6f7f0',\n border: '#8ed9b8',\n text: '#00995a',\n },\n blue: {\n bg: '#e8f4fd',\n border: '#8ec9ed',\n text: '#0066cc',\n },\n yellow: {\n bg: '#fff9e6',\n border: '#ffd966',\n text: '#cc8800',\n },\n};\n\n/**\n * Componente KPICardCustom\n * \n * Versión completamente personalizable de KPICard donde puedes\n * especificar cualquier contenido usando React nodes, sin limitaciones\n * de estructura predefinida.\n * \n * @example\n * ```tsx\n * <KPICardCustom\n * title=\"Custom Metric\"\n * icon={<CustomIcon />}\n * content={\n * <div>\n * <h2>42</h2>\n * <p>Custom layout</p>\n * </div>\n * }\n * description=\"Any custom description\"\n * footer={<button>Action</button>}\n * tag={{ label: \"New\", variant: \"green\" }}\n * />\n * ```\n */\nexport const KPICardCustom = React.forwardRef<HTMLDivElement, KPICardCustomProps>(\n (\n {\n title,\n content,\n description,\n footer,\n tag,\n icon,\n onClick,\n className,\n ...props\n },\n ref\n ) => {\n const tagStyle = tag ? tagStyles[tag.variant || 'default'] : tagStyles.default;\n\n return (\n <div\n ref={ref}\n onClick={onClick}\n className={cn(\n 'bg-white border border-[#ecebf0] rounded-xl p-5 px-8 flex gap-2',\n onClick && 'cursor-pointer hover:shadow-md transition-shadow',\n className\n )}\n {...props}\n >\n {/* Ícono */}\n <div className=\"flex items-center justify-center shrink-0\">\n {icon}\n </div>\n\n {/* Contenido */}\n <div className=\"flex-1 flex flex-col gap-2 min-w-0\">\n {/* Título y Tag */}\n <div className=\"flex items-center justify-between gap-2 w-full\">\n <h3\n className=\"text-base leading-5 font-medium text-[#575385] flex-1 min-w-0\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {title}\n </h3>\n \n {tag && (\n <span\n className=\"px-2 py-1 rounded-2xl text-sm leading-[18px] font-medium border shrink-0\"\n style={{\n backgroundColor: tagStyle.bg,\n borderColor: tagStyle.border,\n color: tagStyle.text,\n fontFamily: 'Causten Round, sans-serif',\n }}\n >\n {tag.label}\n </span>\n )}\n </div>\n\n {/* Contenido principal */}\n <div className=\"min-w-0\">\n {content}\n </div>\n\n {/* Descripción */}\n {description && (\n <div className=\"min-w-0\">\n {description}\n </div>\n )}\n\n {/* Footer */}\n {footer && (\n <div className=\"min-w-0\">\n {footer}\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nKPICardCustom.displayName = 'KPICardCustom';\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { KPIComparison } from '../KPIComparison';\nimport { TriangleAlert } from 'lucide-react';\n\nexport interface KPICardProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Título de la card\n */\n title: string;\n \n /**\n * Valor principal a mostrar\n */\n value: number | string;\n \n /**\n * Unidad del valor (%, x, etc.)\n * @default \"%\"\n */\n unit?: string;\n \n /**\n * Valor total para mostrar fracción (ej: 3/17)\n * Solo se usa si se proporciona\n */\n total?: number;\n \n /**\n * Texto descriptivo\n */\n description?: string;\n \n /**\n * Datos de comparación KPI (opcional)\n */\n comparison?: {\n percentage: number;\n trend: 'positive' | 'negative';\n label?: string;\n showWarning?: boolean;\n };\n \n /**\n * Tag opcional\n */\n tag?: {\n label: string;\n variant?: 'default' | 'red';\n };\n \n /**\n * Ícono personalizado\n */\n icon?: React.ReactNode;\n \n /**\n * Color del ícono\n * @default \"primary\"\n */\n iconColor?: 'primary' | 'error' | 'brand';\n \n /**\n * Texto adicional del body (para variante Text)\n */\n bodyText?: string;\n \n /**\n * Botón opcional\n */\n button?: {\n label: string;\n onClick?: () => void;\n };\n \n /**\n * Callback al hacer clic en la card\n */\n onClick?: () => void;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n// Ícono de advertencia por defecto (TriangleAlert de lucide-react)\nconst DefaultWarningIcon: React.FC<{ color?: string }> = ({ color = '#312e4d' }) => (\n <TriangleAlert \n size={32} \n color={color}\n strokeWidth={2}\n />\n);\n\n/**\n * Componente KPICard\n * \n * Card completa para mostrar KPIs con diferentes variantes:\n * - Con comparación de tendencia\n * - Con tags\n * - Con descripción\n * - Con botones\n * \n * @example\n * ```tsx\n * <KPICard\n * title=\"Active Users\"\n * value={3}\n * unit=\"%\"\n * description=\"Descriptive text goes here\"\n * comparison={{ percentage: 1.0, trend: \"positive\" }}\n * tag={{ label: \"Monthly\", variant: \"default\" }}\n * />\n * ```\n */\nexport const KPICard = React.forwardRef<HTMLDivElement, KPICardProps>(\n (\n {\n title,\n value,\n unit = '%',\n total,\n description,\n comparison,\n tag,\n icon,\n iconColor = 'primary',\n bodyText,\n button,\n onClick,\n className,\n ...props\n },\n ref\n ) => {\n const iconColors = {\n primary: '#312e4d',\n error: '#d4002c',\n brand: '#00995a',\n };\n\n const tagStyles = {\n default: {\n bg: '#f4f4f4',\n border: '#c6c6c6',\n text: '#6e6f6e',\n },\n red: {\n bg: '#ffecf0',\n border: '#ff8ea7',\n text: '#ff305f',\n },\n };\n\n const tagStyle = tagStyles[tag?.variant || 'default'];\n\n return (\n <div\n ref={ref}\n onClick={onClick}\n className={cn(\n 'bg-white border border-[#ecebf0] rounded-xl p-5 px-8 flex gap-2',\n onClick && 'cursor-pointer hover:shadow-md transition-shadow',\n className\n )}\n {...props}\n >\n {/* Ícono */}\n <div className=\"flex items-center justify-center shrink-0\">\n {icon || <DefaultWarningIcon color={iconColors[iconColor]} />}\n </div>\n\n {/* Contenido */}\n <div className=\"flex-1 flex flex-col gap-2 min-w-0\">\n {/* Título y Tag */}\n <div className=\"flex items-center justify-between gap-2 w-full\">\n <h3\n className=\"text-base leading-5 font-medium text-[#575385] flex-1 min-w-0\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {title}\n </h3>\n \n {tag && (\n <span\n className=\"px-2 py-1 rounded-2xl text-sm leading-[18px] font-medium border shrink-0\"\n style={{\n backgroundColor: tagStyle.bg,\n borderColor: tagStyle.border,\n color: tagStyle.text,\n fontFamily: 'Causten Round, sans-serif',\n }}\n >\n {tag.label}\n </span>\n )}\n </div>\n\n {/* Valor principal */}\n <div className=\"flex items-end gap-1\">\n <span\n className=\"text-xl leading-[22px] font-semibold text-[#312e4d]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {value}\n </span>\n \n {total !== undefined ? (\n <span\n className=\"text-base leading-[18px] font-medium text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n /{total}\n </span>\n ) : unit ? (\n <span\n className=\"text-xs leading-[18px] font-medium text-[#312e4d]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {unit}\n </span>\n ) : null}\n \n {description && (\n <span\n className=\"text-sm leading-[18px] font-normal text-[#575385] flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-right\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {description}\n </span>\n )}\n </div>\n\n {/* Body text adicional (variante Text) */}\n {bodyText && (\n <p\n className=\"text-sm leading-[18px] font-normal text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {bodyText}\n </p>\n )}\n\n {/* Comparación */}\n {comparison && (\n <KPIComparison\n percentage={comparison.percentage}\n trend={comparison.trend}\n label={comparison.label}\n showWarning={comparison.showWarning}\n />\n )}\n\n {/* Botón */}\n {button && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n button.onClick?.();\n }}\n className=\"text-sm leading-[18px] font-semibold text-[#00995a] text-left self-start hover:underline\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {button.label}\n </button>\n )}\n </div>\n </div>\n );\n }\n);\n\nKPICard.displayName = 'KPICard';\n\n// Export custom variant\nexport { KPICardCustom } from './KPICardCustom';\nexport type { KPICardCustomProps } from './KPICardCustom';\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Tipo de loader\n * @default \"spinner\"\n */\n type?: 'spinner' | 'linear';\n \n /**\n * Controla la visibilidad del loader\n * @default true\n */\n show?: boolean;\n \n /**\n * Variante del loader (active o disabled)\n * @default \"active\"\n */\n variant?: 'active' | 'disabled';\n \n /**\n * Tamaño del spinner (solo para type=\"spinner\")\n * @default 48\n */\n size?: number;\n \n /**\n * Ancho de la barra (solo para type=\"linear\")\n * @default 230\n */\n width?: number;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente Loader - Indicadores de carga\n * \n * Muestra indicadores de carga con dos tipos:\n * - spinner: Loader circular que gira\n * - linear: Barra de progreso horizontal animada\n * \n * Incluye parámetro show para controlar visibilidad.\n */\nconst Loader = React.forwardRef<HTMLDivElement, LoaderProps>(\n (\n {\n type = 'spinner',\n show = true,\n variant = 'active',\n size = 48,\n width = 230,\n className,\n ...props\n },\n ref\n ) => {\n // No renderizar si show es false\n if (!show) {\n return null;\n }\n\n // Colores según variante\n const colors = {\n active: '#00b56b',\n disabled: '#a29fba',\n };\n\n const color = colors[variant];\n\n // Spinner circular\n if (type === 'spinner') {\n return (\n <div\n ref={ref}\n className={cn('inline-flex items-center justify-center', className)}\n role=\"status\"\n aria-label=\"Cargando\"\n {...props}\n >\n <div\n className=\"rounded-full animate-spin\"\n style={{\n width: size,\n height: size,\n border: `4px solid transparent`,\n borderTopColor: color,\n borderRightColor: color,\n }}\n />\n <span className=\"sr-only\">Cargando...</span>\n </div>\n );\n }\n\n // Linear progress bar\n return (\n <div\n ref={ref}\n className={cn('relative overflow-hidden rounded-full bg-gray-200', className)}\n style={{\n width,\n height: 8,\n }}\n role=\"progressbar\"\n aria-label=\"Cargando\"\n aria-valuemin={0}\n aria-valuemax={100}\n {...props}\n >\n <div\n className=\"absolute top-0 left-0 h-full rounded-full\"\n style={{\n backgroundColor: color,\n animation: 'linear-progress 1.5s ease-in-out infinite',\n }}\n />\n <span className=\"sr-only\">Cargando...</span>\n </div>\n );\n }\n);\n\nLoader.displayName = 'Loader';\n\nexport { Loader };\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface OptionCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /**\n * Título/Nombre de la opción\n */\n title: string;\n \n /**\n * Descripción de la opción\n */\n description: string;\n \n /**\n * Valor asociado (útil para radio groups)\n */\n value: string;\n \n /**\n * Si está seleccionada\n * @default false\n */\n selected?: boolean;\n \n /**\n * Callback cuando se selecciona\n */\n onSelect?: (value: string) => void;\n \n /**\n * Si está deshabilitada\n * @default false\n */\n disabled?: boolean;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente OptionCard\n * \n * Card seleccionable con radio button integrado.\n * Ideal para selección de opciones, roles, planes, etc.\n * \n * Estados:\n * - Default: Border gris, radio sin seleccionar\n * - Selected: Border verde, radio seleccionado\n * - Disabled: Opacidad reducida, no interactivo\n * \n * @example\n * ```tsx\n * <OptionCard\n * title=\"Admin\"\n * description=\"Full access to all features and administrative settings\"\n * value=\"admin\"\n * selected={selectedRole === 'admin'}\n * onSelect={(value) => setSelectedRole(value)}\n * />\n * ```\n */\nexport const OptionCard = React.forwardRef<\n HTMLDivElement,\n OptionCardProps\n>(\n (\n {\n title,\n description,\n value,\n selected = false,\n onSelect,\n disabled,\n className,\n ...props\n },\n ref\n ) => {\n const handleClick = () => {\n if (!disabled && onSelect) {\n onSelect(value);\n }\n };\n\n return (\n <div\n ref={ref}\n onClick={handleClick}\n className={cn(\n 'bg-white border border-solid rounded-xl p-4 flex flex-col gap-1 transition-all cursor-pointer',\n selected ? 'border-[#00b56b]' : 'border-[#ecebf0]',\n disabled && 'opacity-50 cursor-not-allowed',\n !disabled && 'hover:shadow-sm',\n className\n )}\n {...props}\n >\n {/* Radio button y título */}\n <div className=\"flex gap-3 items-center h-6\">\n {/* Radio Button */}\n <div className=\"flex items-center justify-center shrink-0 w-6 h-6\">\n <div\n className={cn(\n 'w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors',\n selected ? 'border-[#00995a]' : 'border-[#a29fba]'\n )}\n >\n {selected && (\n <div className=\"w-3 h-3 rounded-full bg-[#00995a]\" />\n )}\n </div>\n </div>\n\n {/* Título */}\n <h3\n className=\"text-base leading-5 font-medium text-[#312e4d] flex-1\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {title}\n </h3>\n </div>\n\n {/* Descripción */}\n <div className=\"pl-9\">\n <p\n className=\"text-sm leading-[18px] font-normal text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {description}\n </p>\n </div>\n </div>\n );\n }\n);\n\nOptionCard.displayName = 'OptionCard';\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface OrderCardCustomProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Título personalizado de la card\n */\n title: string;\n \n /**\n * Cantidad principal\n */\n count: number | string;\n \n /**\n * Etiqueta de la cantidad\n * @default \"orders\"\n */\n countLabel?: string;\n \n /**\n * Línea 1 de información (ej: \"Gross Sales: $100,000.00\")\n */\n infoLine1?: string;\n \n /**\n * Línea 2 de información (ej: \"Net Sales: $100,000.00\")\n */\n infoLine2?: string;\n \n /**\n * Ícono personalizado (React node)\n */\n icon: React.ReactNode;\n \n /**\n * Badge personalizado (opcional)\n */\n badge?: {\n label: string;\n variant?: 'default' | 'red' | 'green' | 'blue';\n onClick?: () => void;\n };\n \n /**\n * Botón personalizado (opcional)\n */\n button?: {\n label: string;\n onClick?: () => void;\n };\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\nconst badgeStyles = {\n default: {\n bg: '#f4f4f4',\n border: '#c6c6c6',\n text: '#6e6f6e',\n },\n red: {\n bg: '#ffecf0',\n border: '#ff8ea7',\n text: '#ff305f',\n },\n green: {\n bg: '#e6f7f0',\n border: '#8ed9b8',\n text: '#00995a',\n },\n blue: {\n bg: '#e8f4fd',\n border: '#8ec9ed',\n text: '#0066cc',\n },\n};\n\n/**\n * Componente OrderCardCustom\n * \n * Versión personalizable de OrderCard donde puedes especificar\n * cualquier título, ícono, información y badges sin estar limitado\n * a estados predefinidos.\n * \n * @example\n * ```tsx\n * <OrderCardCustom\n * title=\"Processing\"\n * count={42}\n * countLabel=\"items\"\n * infoLine1=\"Total: $50,000.00\"\n * infoLine2=\"Pending: 12 items\"\n * icon={<CustomIcon />}\n * badge={{ label: \"Urgent\", variant: \"red\" }}\n * button={{ label: \"View\", onClick: () => {} }}\n * />\n * ```\n */\nexport const OrderCardCustom = React.forwardRef<HTMLDivElement, OrderCardCustomProps>(\n (\n {\n title,\n count,\n countLabel = 'orders',\n infoLine1,\n infoLine2,\n icon,\n badge,\n button,\n className,\n ...props\n },\n ref\n ) => {\n const badgeStyle = badge ? badgeStyles[badge.variant || 'default'] : badgeStyles.default;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-white border border-[#ecebf0] rounded-xl p-5 flex gap-2',\n className\n )}\n {...props}\n >\n {/* Ícono */}\n <div className=\"flex items-center justify-center shrink-0\">\n {icon}\n </div>\n\n {/* Contenido */}\n <div className=\"flex-1 flex gap-2 items-start justify-end min-w-0\">\n {/* Información principal */}\n <div className=\"flex-1 flex flex-col gap-1 min-w-0\">\n {/* Título */}\n <h3\n className=\"text-base leading-5 font-medium text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {title}\n </h3>\n\n {/* Contador */}\n <div className=\"flex items-end gap-1\">\n <span\n className=\"text-xl leading-[22px] font-semibold text-[#312e4d]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {count}\n </span>\n <span\n className=\"text-base leading-[18px] font-medium text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {countLabel}\n </span>\n </div>\n\n {/* Info Line 1 */}\n {infoLine1 && (\n <div\n className=\"text-xs leading-normal font-normal text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {infoLine1}\n </div>\n )}\n\n {/* Info Line 2 */}\n {infoLine2 && (\n <div\n className=\"text-xs leading-normal font-normal text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {infoLine2}\n </div>\n )}\n </div>\n\n {/* Badges y botón */}\n <div className=\"flex flex-col gap-4 items-end justify-end pb-[33px]\">\n {/* Badge personalizado */}\n {badge && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n badge.onClick?.();\n }}\n disabled={!badge.onClick}\n className={cn(\n 'px-2 py-1 rounded-2xl text-sm leading-[18px] font-medium border transition-opacity',\n badge.onClick && 'hover:opacity-80 cursor-pointer'\n )}\n style={{\n fontFamily: 'Causten Round, sans-serif',\n height: '24px',\n backgroundColor: badgeStyle.bg,\n borderColor: badgeStyle.border,\n color: badgeStyle.text,\n }}\n >\n {badge.label}\n </button>\n )}\n\n {/* Botón personalizado */}\n {button && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n button.onClick?.();\n }}\n className=\"text-sm leading-[18px] font-semibold text-[#00995a] hover:underline\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {button.label}\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\nOrderCardCustom.displayName = 'OrderCardCustom';\n\n\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { ReceiptText, Package, Route, CircleCheck } from 'lucide-react';\n\nexport interface OrderCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Estado de la orden (cada uno con su ícono)\n */\n state: 'received' | 'picking' | 'dispatched' | 'delivered';\n \n /**\n * Cantidad de órdenes/rutas\n */\n count: number;\n \n /**\n * Etiqueta de la cantidad\n * @default \"orders\"\n */\n countLabel?: string;\n \n /**\n * Ventas brutas\n */\n grossSales: number;\n \n /**\n * Ventas netas\n */\n netSales: number;\n \n /**\n * Mostrar badge de delays\n * @default false\n */\n hasDelays?: boolean;\n \n /**\n * Número de delays (opcional)\n */\n delayCount?: number;\n \n /**\n * Callback al hacer clic en el badge de Delays\n */\n onDelaysClick?: () => void;\n \n /**\n * Callback al hacer clic en el botón Filter\n */\n onFilterClick?: () => void;\n \n /**\n * Ícono personalizado (opcional)\n */\n icon?: React.ReactNode;\n \n /**\n * Símbolo de moneda\n * @default \"$\"\n */\n currencySymbol?: string;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n// Íconos de lucide-react con el color de marca\nconst iconColor = '#00995a';\nconst iconSize = 32;\nconst iconStrokeWidth = 2;\n\nconst ReceivedIcon: React.FC = () => (\n <ReceiptText \n size={iconSize} \n color={iconColor}\n strokeWidth={iconStrokeWidth}\n />\n);\n\nconst PickingIcon: React.FC = () => (\n <Package \n size={iconSize} \n color={iconColor}\n strokeWidth={iconStrokeWidth}\n />\n);\n\nconst DispatchedIcon: React.FC = () => (\n <Route \n size={iconSize} \n color={iconColor}\n strokeWidth={iconStrokeWidth}\n />\n);\n\nconst DeliveredIcon: React.FC = () => (\n <CircleCheck \n size={iconSize} \n color={iconColor}\n strokeWidth={iconStrokeWidth}\n />\n);\n\n// Mapeo de estados a títulos e íconos\nconst stateConfig = {\n received: {\n title: 'Received',\n icon: ReceivedIcon,\n },\n picking: {\n title: 'Picking',\n icon: PickingIcon,\n },\n dispatched: {\n title: 'Dispatched',\n icon: DispatchedIcon,\n },\n delivered: {\n title: 'Delivered',\n icon: DeliveredIcon,\n },\n};\n\n/**\n * Componente OrderCard\n * \n * Card para mostrar el estado de órdenes con métricas de ventas,\n * badges de delays opcionales, y botón de filtro.\n * \n * Estados disponibles:\n * - received: Órdenes recibidas\n * - picking: Órdenes en preparación\n * - dispatched: Órdenes despachadas\n * - delivered: Órdenes entregadas\n * \n * @example\n * ```tsx\n * <OrderCard\n * state=\"received\"\n * count={24}\n * countLabel=\"orders\"\n * grossSales={100000.00}\n * netSales={100000.00}\n * hasDelays={true}\n * onFilterClick={() => console.log('Filter')}\n * />\n * ```\n */\nexport const OrderCard = React.forwardRef<HTMLDivElement, OrderCardProps>(\n (\n {\n state,\n count,\n countLabel = 'orders',\n grossSales,\n netSales,\n hasDelays = false,\n delayCount,\n onDelaysClick,\n onFilterClick,\n icon,\n currencySymbol = '$',\n className,\n ...props\n },\n ref\n ) => {\n const config = stateConfig[state];\n const IconComponent = icon || config.icon;\n \n const formatCurrency = (amount: number): string => {\n return `${currencySymbol}${amount.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-white border border-[#ecebf0] rounded-xl p-5 flex gap-2',\n className\n )}\n {...props}\n >\n {/* Ícono */}\n <div className=\"flex items-start justify-center shrink-0\">\n {typeof IconComponent === 'function' ? <IconComponent /> : IconComponent}\n </div>\n\n {/* Contenido */}\n <div className=\"flex-1 flex gap-2 items-start justify-end min-w-0\">\n {/* Información de la orden */}\n <div className=\"flex-1 flex flex-col gap-1 min-w-0\">\n {/* Título */}\n <h3\n className=\"text-base leading-5 font-medium text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {config.title}\n </h3>\n\n {/* Contador */}\n <div className=\"flex items-end gap-1\">\n <span\n className=\"text-xl leading-[22px] font-semibold text-[#312e4d]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {count}\n </span>\n <span\n className=\"text-base leading-[18px] font-medium text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n {countLabel}\n </span>\n </div>\n\n {/* Gross Sales */}\n <div\n className=\"flex gap-1 text-xs leading-normal font-light text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n <span>Gross Sales:</span>\n <span>{formatCurrency(grossSales)}</span>\n </div>\n\n {/* Net Sales */}\n <div\n className=\"flex gap-1 text-xs leading-normal font-light text-[#575385]\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n <span>Net Sales:</span>\n <span>{formatCurrency(netSales)}</span>\n </div>\n </div>\n\n {/* Badges y botón */}\n <div className=\"flex flex-col gap-4 items-end justify-end pl-12 pb-[33px]\">\n {/* Badge de Delays */}\n {hasDelays && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n onDelaysClick?.();\n }}\n className=\"px-2 rounded-2xl text-[12px] leading-[18px] font-light border bg-[#ffecf0] border-[#ff8ea7] text-[#ff305f] hover:opacity-80 transition-opacity\"\n style={{ fontFamily: 'Causten Round, sans-serif', height: '24px' }}\n >\n {delayCount ? `${delayCount} Delays` : 'Delays'}\n </button>\n )}\n\n {/* Botón Filter */}\n {onFilterClick && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n onFilterClick();\n }}\n className=\"text-sm leading-[18px] font-medium text-[#00995a] hover:underline\"\n style={{ fontFamily: 'Causten Round, sans-serif' }}\n >\n Filter\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\nOrderCard.displayName = 'OrderCard';\n\n// Export custom variant\nexport { OrderCardCustom } from './OrderCardCustom';\nexport type { OrderCardCustomProps } from './OrderCardCustom';\n\n","import React from 'react';\nimport { cn } from '../../lib/utils';\n\ninterface PaginationLibProps {\n currentPage: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n}\n\nexport const PaginationLib: React.FC<PaginationLibProps> = ({\n currentPage,\n totalPages,\n onPageChange,\n}) => {\n const handlePrevious = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1);\n }\n };\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n onPageChange(currentPage + 1);\n }\n };\n\n const handlePageClick = (page: number) => {\n onPageChange(page);\n };\n\n // Generate page numbers to show\n const getPageNumbers = () => {\n const pages: (number | string)[] = [];\n const maxVisible = 4;\n \n if (totalPages <= maxVisible + 2) {\n // Show all pages if total is small\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n // Always show first page\n pages.push(1);\n \n if (currentPage <= 3) {\n // Show first few pages\n for (let i = 2; i <= 4; i++) {\n pages.push(i);\n }\n pages.push('...');\n pages.push(totalPages);\n } else if (currentPage >= totalPages - 2) {\n // Show last few pages\n pages.push('...');\n for (let i = totalPages - 2; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n // Show pages around current\n pages.push('...');\n for (let i = currentPage - 1; i <= currentPage + 1; i++) {\n pages.push(i);\n }\n pages.push('...');\n pages.push(totalPages);\n }\n }\n \n return pages;\n };\n\n const pageNumbers = getPageNumbers();\n\n return (\n <div className=\"flex gap-1.5 items-center\">\n <button\n onClick={handlePrevious}\n disabled={currentPage === 1}\n className={cn(\n 'border rounded bg-transparent p-1 flex items-center justify-center w-[28px] h-[28px]',\n currentPage === 1\n ? 'border-[#ecebf0] cursor-not-allowed'\n : 'border-[#ecebf0] cursor-pointer hover:bg-gray-50'\n )}\n >\n <i className=\"tabler-chevron-left text-sm text-[#312e4d]\" />\n </button>\n \n {pageNumbers.map((page, index) => {\n if (page === '...') {\n return (\n <div\n key={`ellipsis-${index}`}\n className=\"border border-[#ecebf0] rounded p-1 h-[28px] w-[28px] flex items-center justify-center\"\n >\n <p className=\"text-xs text-[#575385] text-center\">...</p>\n </div>\n );\n }\n \n const pageNum = page as number;\n const isActive = pageNum === currentPage;\n \n return (\n <button\n key={pageNum}\n onClick={() => handlePageClick(pageNum)}\n className={cn(\n 'border rounded bg-transparent p-1 h-[28px] w-[28px] flex items-center justify-center px-1',\n isActive\n ? 'border-[#a29fba] bg-white'\n : 'border-[#ecebf0] hover:bg-gray-50'\n )}\n >\n <p\n className={cn(\n 'text-xs text-center',\n isActive\n ? 'text-[#312e4d]'\n : 'text-[#a29fba]'\n )}\n >\n {pageNum}\n </p>\n </button>\n );\n })}\n \n <button\n onClick={handleNext}\n disabled={currentPage === totalPages}\n className={cn(\n 'border rounded bg-transparent p-1 flex items-center justify-center h-[28px]',\n currentPage === totalPages\n ? 'border-[#ecebf0] cursor-not-allowed'\n : 'border-[#ecebf0] cursor-pointer hover:bg-gray-50'\n )}\n >\n <i className=\"tabler-chevron-right text-sm text-[#312e4d]\" />\n </button>\n </div>\n );\n};\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/use-escape-keydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-guards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nexport {\n FocusGuards,\n FocusGuards as Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","// src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n Arrow,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/popper.tsx\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n shift,\n limitShift,\n hide,\n arrow as floatingUIarrow,\n flip,\n size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const anchorRef = React.useRef(null);\n React.useEffect(() => {\n const previousAnchor = anchorRef.current;\n anchorRef.current = virtualRef?.current || ref.current;\n if (previousAnchor !== anchorRef.current) {\n context.onAnchorChange(anchorRef.current);\n }\n });\n return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopper,\n side = \"bottom\",\n sideOffset = 0,\n align = \"center\",\n alignOffset = 0,\n arrowPadding = 0,\n avoidCollisions = true,\n collisionBoundary = [],\n collisionPadding: collisionPaddingProp = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n updatePositionStrategy = \"optimized\",\n onPlaced,\n ...contentProps\n } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n avoidCollisions && shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? limitShift() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = useCallbackRef(onPlaced);\n useLayoutEffect(() => {\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [isPositioned, handlePlaced]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ jsx(\n PopperContentProvider,\n {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n }\n )\n }\n )\n }\n );\n }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return (\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ jsx(\n ArrowPrimitive.Root,\n {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n }\n )\n }\n )\n );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n ALIGN_OPTIONS,\n Anchor,\n Arrow,\n Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Root2 as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { cn } from '../../lib/utils';\nimport { ChevronDown } from 'lucide-react';\n\nexport interface SelectOption {\n id: string;\n text: string;\n}\n\nexport interface SelectProps {\n /**\n * The currently selected value (id)\n */\n value?: string;\n \n /**\n * Callback fired when selection changes\n */\n onChange?: (text: string) => void;\n \n /**\n * Whether the select is disabled\n */\n disabled?: boolean;\n \n /**\n * Array of options to display\n */\n options: SelectOption[];\n \n /**\n * Placeholder text when no option is selected\n */\n placeholder?: string;\n \n /**\n * Label text shown above the selected value\n */\n label?: string;\n \n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(\n (\n {\n value,\n onChange,\n disabled = false,\n options = [],\n placeholder = 'Select an option',\n label,\n className,\n },\n ref\n ) => {\n const selectedOption = options.find((opt) => opt.id === value);\n const displayText = selectedOption?.text || placeholder;\n \n const handleValueChange = (newValue: string) => {\n if (onChange) {\n onChange(newValue);\n }\n };\n \n return (\n <SelectPrimitive.Root\n value={value}\n onValueChange={handleValueChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n // Layout\n 'flex items-center gap-2',\n 'w-full',\n 'px-4 py-3', // 16px horizontal, 12px vertical\n 'rounded',\n \n // Border and background\n 'border border-[#ecebf0]',\n 'bg-white',\n \n // Typography\n 'text-left',\n \n // States\n 'transition-colors',\n 'hover:border-[#a29fba]',\n 'focus:outline-none focus:ring-0 focus:border-[#a29fba]',\n 'data-[state=open]:border-[#a29fba]',\n \n // Disabled\n disabled && 'opacity-50 cursor-not-allowed bg-[#f4f4f4]',\n \n className\n )}\n data-testid=\"select-trigger\"\n aria-label={label || placeholder}\n >\n <div className=\"flex flex-col flex-1 min-w-0\">\n {/* Label (shown when value is selected or in open state) */}\n {(selectedOption || label) && (\n <span\n className=\"text-xs leading-normal text-[#575385]\"\n data-testid=\"select-label\"\n >\n {label || placeholder}\n </span>\n )}\n \n {/* Selected value or placeholder */}\n <SelectPrimitive.Value asChild>\n <span\n className={cn(\n 'text-sm leading-4',\n selectedOption ? 'text-[#312e4d]' : 'text-[#312e4d]',\n !selectedOption && !label && 'text-base leading-5' // Larger when no label\n )}\n data-testid=\"select-value\"\n >\n {displayText}\n </span>\n </SelectPrimitive.Value>\n </div>\n \n <SelectPrimitive.Icon asChild>\n <ChevronDown\n size={16}\n className=\"text-[#312e4d] shrink-0\"\n data-testid=\"select-icon\"\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n \n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n 'overflow-hidden',\n 'bg-white',\n 'rounded',\n 'border border-[#ecebf0]',\n 'shadow-lg',\n 'z-50',\n 'w-[var(--radix-select-trigger-width)]'\n )}\n position=\"popper\"\n sideOffset={4}\n data-testid=\"select-content\"\n >\n <SelectPrimitive.Viewport className=\"p-1\">\n {options.map((option) => (\n <SelectPrimitive.Item\n key={option.id}\n value={option.id}\n className={cn(\n 'relative flex items-center',\n 'px-4 py-2',\n 'text-sm leading-4 text-[#312e4d]',\n 'rounded',\n 'cursor-pointer',\n 'select-none',\n 'outline-none',\n 'transition-colors',\n 'hover:bg-[#f4f4f4]',\n 'focus:bg-[#f4f4f4]',\n 'data-[state=checked]:bg-[#ecebf0]',\n 'data-[disabled]:opacity-50 data-[disabled]:pointer-events-none'\n )}\n data-testid={`select-option-${option.id}`}\n >\n <SelectPrimitive.ItemText>{option.text}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n\n","import * as React from 'react';\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\nimport { cn } from '../../lib/utils';\n\nexport interface SwitcherProps extends Omit<React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, 'checked' | 'onCheckedChange' | 'onChange'> {\n /**\n * Estado del switch (on/off)\n * @default false\n */\n status?: boolean;\n \n /**\n * Si el switch está deshabilitado\n * @default false\n */\n disabled?: boolean;\n \n /**\n * Callback que recibe el nuevo estado cuando cambia\n */\n onChange?: (status: boolean) => void;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente Switcher - Toggle Switch\n * \n * Switch toggle basado en Radix UI con el diseño del Portal Design System.\n * \n * Estados:\n * - Off: Fondo gris (#e0e0e0), handle a la izquierda\n * - On: Fondo verde (#00995a), handle a la derecha\n * - Disabled: Estado deshabilitado con opacidad reducida\n * \n * Incluye callback onChange que recibe el nuevo estado.\n */\nconst Switcher = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitive.Root>,\n SwitcherProps\n>(\n (\n {\n status = false,\n disabled = false,\n onChange,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <SwitchPrimitive.Root\n ref={ref}\n checked={status}\n onCheckedChange={onChange}\n disabled={disabled}\n className={cn(\n 'relative inline-flex h-5 w-10 shrink-0 cursor-pointer items-center rounded-full p-0.5 transition-colors duration-200 ease-in-out',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#00995a] focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n status\n ? 'bg-[#00995a]'\n : 'bg-[#e0e0e0]',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n 'pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg transition-transform duration-200 ease-in-out',\n status ? 'translate-x-5' : 'translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n }\n);\n\nSwitcher.displayName = 'Switcher';\n\nexport { Switcher };\n\n","import React, { useState } from 'react';\nimport { cn } from '../../lib/utils';\nimport { PaginationLib } from '../PaginationLib';\n\nexport interface TableColumn<T = any> {\n /**\n * Unique key for the column\n */\n key: string;\n \n /**\n * Header label for the column\n */\n label: string;\n \n /**\n * Custom render function for cell content\n */\n render?: (row: T, rowIndex: number) => React.ReactNode;\n \n /**\n * Additional CSS classes for the column\n */\n className?: string;\n}\n\nexport interface TableProps<T = any> {\n /**\n * Array of column definitions\n */\n columns: TableColumn<T>[];\n \n /**\n * Array of data rows\n */\n data: T[];\n \n /**\n * Number of rows per page\n */\n rowsPerPage?: number;\n \n /**\n * Show pagination (default: true)\n */\n showPagination?: boolean;\n \n /**\n * Custom className for the table container\n */\n className?: string;\n \n /**\n * Custom className for table rows\n */\n rowClassName?: string | ((row: T, rowIndex: number) => string);\n \n /**\n * Callback when page changes\n */\n onPageChange?: (page: number) => void;\n \n /**\n * Current page (for controlled component)\n */\n currentPage?: number;\n \n /**\n * Loading state\n */\n loading?: boolean;\n \n /**\n * Empty state message\n */\n emptyMessage?: string;\n}\n\nexport function Table<T = any>({\n columns,\n data,\n rowsPerPage = 10,\n showPagination = true,\n className,\n rowClassName,\n onPageChange,\n currentPage: controlledPage,\n loading = false,\n emptyMessage = 'No data available',\n}: TableProps<T>) {\n const [internalPage, setInternalPage] = useState(1);\n \n // Use controlled page if provided, otherwise use internal state\n const currentPage = controlledPage !== undefined ? controlledPage : internalPage;\n \n const handlePageChange = (page: number) => {\n if (controlledPage === undefined) {\n setInternalPage(page);\n }\n onPageChange?.(page);\n };\n \n // Calculate pagination\n const totalPages = Math.ceil(data.length / rowsPerPage);\n const startIndex = (currentPage - 1) * rowsPerPage;\n const endIndex = startIndex + rowsPerPage;\n const paginatedData = data.slice(startIndex, endIndex);\n \n // Render cell content\n const renderCell = (column: TableColumn<T>, row: T, rowIndex: number) => {\n if (column.render) {\n return column.render(row, rowIndex);\n }\n \n // Default: access property by key\n const value = (row as any)[column.key];\n \n if (value === null || value === undefined) {\n return '-';\n }\n \n // If value is an object with primary and secondary text\n if (typeof value === 'object' && 'primary' in value) {\n return (\n <div className=\"flex flex-col\">\n <span className=\"text-sm leading-[18px] text-[#312e4d]\">\n {value.primary}\n </span>\n {value.secondary && (\n <span className=\"text-xs leading-normal text-[#575385]\">\n {value.secondary}\n </span>\n )}\n </div>\n );\n }\n \n return (\n <span className=\"text-sm leading-[18px] text-[#312e4d]\">\n {String(value)}\n </span>\n );\n };\n \n const getRowClassName = (row: T, rowIndex: number) => {\n if (typeof rowClassName === 'function') {\n return rowClassName(row, rowIndex);\n }\n return rowClassName;\n };\n \n return (\n <div\n className={cn(\n 'bg-white rounded-xl p-8',\n 'flex flex-col gap-4',\n className\n )}\n data-testid=\"table-container\"\n >\n {/* Table Body */}\n <div className=\"w-full\" data-testid=\"table-body\">\n {/* Header Row */}\n <div\n className={cn(\n 'flex gap-3 items-center',\n 'px-4 py-3',\n 'border-b border-[#ecebf0]',\n 'font-semibold text-sm leading-[18px] text-[#312e4d]'\n )}\n data-testid=\"table-header\"\n >\n {columns.map((column) => (\n <div\n key={column.key}\n className={cn(\n 'flex-1 min-w-0',\n column.className\n )}\n data-testid={`table-header-${column.key}`}\n >\n {column.label}\n </div>\n ))}\n </div>\n \n {/* Data Rows */}\n {loading ? (\n <div\n className=\"flex items-center justify-center py-12\"\n data-testid=\"table-loading\"\n >\n <span className=\"text-[#a29fba]\">Loading...</span>\n </div>\n ) : paginatedData.length === 0 ? (\n <div\n className=\"flex items-center justify-center py-12\"\n data-testid=\"table-empty\"\n >\n <span className=\"text-[#a29fba]\">{emptyMessage}</span>\n </div>\n ) : (\n paginatedData.map((row, rowIndex) => (\n <div\n key={rowIndex}\n className={cn(\n 'flex gap-3 items-center',\n 'px-4 py-3',\n 'border-b border-[#ecebf0]',\n getRowClassName(row, rowIndex)\n )}\n data-testid={`table-row-${rowIndex}`}\n >\n {columns.map((column) => (\n <div\n key={column.key}\n className={cn(\n 'flex-1 min-w-0',\n column.className\n )}\n data-testid={`table-cell-${rowIndex}-${column.key}`}\n >\n {renderCell(column, row, rowIndex)}\n </div>\n ))}\n </div>\n ))\n )}\n </div>\n \n {/* Pagination */}\n {showPagination && totalPages > 1 && !loading && (\n <div\n className=\"flex justify-end\"\n data-testid=\"table-pagination\"\n >\n <PaginationLib\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={handlePageChange}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport default Table;\n\n","import React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Select, SelectOption } from '../Select';\nimport { Button } from '../ButtonRadix';\nimport { ListFilter, Search, ChevronDown } from 'lucide-react';\n\nexport interface TableHeaderFilter {\n /**\n * Unique key for the filter\n */\n key: string;\n \n /**\n * Label for the filter (used as placeholder if placeholder not provided)\n */\n label: string;\n \n /**\n * Placeholder text shown when no option is selected\n */\n placeholder?: string;\n \n /**\n * Options for dropdown filter\n */\n options?: SelectOption[];\n \n /**\n * Selected value\n */\n value?: string;\n \n /**\n * Callback when filter changes\n */\n onChange?: (value: string) => void;\n}\n\nexport interface TableHeaderButton {\n /**\n * Button label\n */\n label: string;\n \n /**\n * Button variant (primary = green, outline = white with border)\n */\n variant?: 'primary' | 'outline';\n \n /**\n * Is this a dropdown button?\n */\n isDropdown?: boolean;\n \n /**\n * Dropdown options (if isDropdown is true)\n */\n dropdownOptions?: SelectOption[];\n \n /**\n * Selected dropdown value\n */\n dropdownValue?: string;\n \n /**\n * Click handler for regular button\n */\n onClick?: () => void;\n \n /**\n * Change handler for dropdown button\n */\n onDropdownChange?: (value: string) => void;\n}\n\nexport interface TableHeaderCard {\n /**\n * Card label\n */\n label: string;\n \n /**\n * Card value\n */\n value: string | number;\n \n /**\n * Icon element\n */\n icon?: React.ReactNode;\n}\n\nexport interface TableHeaderProps {\n /**\n * Title shown at the top (optional)\n */\n title?: string;\n \n /**\n * Show title\n */\n showTitle?: boolean;\n \n /**\n * Search placeholder\n */\n searchPlaceholder?: string;\n \n /**\n * Search value\n */\n searchValue?: string;\n \n /**\n * Search callback\n */\n onSearchChange?: (value: string) => void;\n \n /**\n * Array of filters\n */\n filters?: TableHeaderFilter[];\n \n /**\n * Show filters row\n */\n showFilters?: boolean;\n \n /**\n * Array of buttons\n */\n buttons?: TableHeaderButton[];\n \n /**\n * Show buttons\n */\n showButtons?: boolean;\n \n /**\n * Array of KPI cards to show\n */\n cards?: TableHeaderCard[];\n \n /**\n * Show cards\n */\n showCards?: boolean;\n \n /**\n * Additional CSS classes\n */\n className?: string;\n}\n\nexport const TableHeader: React.FC<TableHeaderProps> = ({\n title = 'Table Header',\n showTitle = false,\n searchPlaceholder = 'Search by...',\n searchValue = '',\n onSearchChange,\n filters = [],\n showFilters = true,\n buttons = [],\n showButtons = true,\n cards = [],\n showCards = false,\n className,\n}) => {\n return (\n <div\n className={cn(\n 'bg-white rounded-xl p-8',\n 'flex flex-col gap-4',\n className\n )}\n data-testid=\"table-header\"\n >\n {/* Title (opcional) */}\n {showTitle && title && (\n <h2\n className=\"text-xl font-semibold text-[#312e4d]\"\n data-testid=\"table-header-title\"\n >\n {title}\n </h2>\n )}\n \n {/* Cards (opcional) */}\n {showCards && cards.length > 0 && (\n <div\n className=\"flex gap-4 w-full\"\n data-testid=\"table-header-cards\"\n >\n {cards.map((card, index) => (\n <div\n key={index}\n className=\"bg-white border border-[#ecebf0] rounded-xl p-4 flex-1 flex gap-2\"\n data-testid={`table-header-card-${index}`}\n >\n {card.icon && (\n <div className=\"shrink-0\" data-testid={`table-header-card-icon-${index}`}>\n {card.icon}\n </div>\n )}\n <div className=\"flex flex-col gap-1 flex-1\">\n <span className=\"text-base font-medium text-[#575385] leading-5\">\n {card.label}\n </span>\n <span className=\"text-xl font-semibold text-[#312e4d] leading-[22px]\">\n {card.value}\n </span>\n </div>\n </div>\n ))}\n </div>\n )}\n \n {/* Search Field */}\n <div\n className=\"relative\"\n data-testid=\"table-header-search\"\n >\n <div className=\"absolute left-4 top-1/2 -translate-y-1/2 pointer-events-none\">\n <Search size={16} className=\"text-[#312e4d]\" />\n </div>\n <input\n type=\"text\"\n value={searchValue}\n onChange={(e) => onSearchChange?.(e.target.value)}\n placeholder={searchPlaceholder}\n className={cn(\n 'w-full h-11 pl-10 pr-4 py-3',\n 'border border-[#ecebf0] rounded',\n 'text-base leading-5',\n 'placeholder:text-[#a29fba]',\n 'focus:outline-none focus:border-[#a29fba]',\n 'transition-colors'\n )}\n data-testid=\"table-header-search-input\"\n />\n </div>\n \n {/* Filters and Buttons Row */}\n <div className=\"flex gap-4 items-center w-full\">\n {/* Filters */}\n {showFilters && filters.length > 0 && (\n <div\n className=\"flex gap-4 items-center\"\n data-testid=\"table-header-filters\"\n >\n {/* \"Filter by\" label */}\n <div className=\"flex items-center gap-2 py-3\">\n <ListFilter size={16} className=\"text-[#312e4d]\" />\n <span className=\"text-base leading-5 text-[#312e4d]\">\n Filter by\n </span>\n </div>\n \n {/* Filter dropdowns */}\n {filters.map((filter, index) => (\n <div\n key={filter.key}\n className=\"min-w-[120px]\"\n data-testid={`table-header-filter-${index}`}\n >\n {filter.options && filter.options.length > 0 ? (\n <Select\n options={filter.options}\n value={filter.value}\n onChange={(value) => filter.onChange?.(value)}\n placeholder={filter.placeholder || filter.label}\n className=\"h-11\"\n />\n ) : (\n <button\n className={cn(\n 'flex items-center gap-2',\n 'border border-[#ecebf0] rounded',\n 'px-4 py-3 h-11',\n 'text-base leading-5 text-[#312e4d]',\n 'hover:border-[#a29fba] transition-colors'\n )}\n onClick={() => filter.onChange?.('')}\n >\n <span>{filter.placeholder || filter.label}</span>\n <ChevronDown size={16} />\n </button>\n )}\n </div>\n ))}\n </div>\n )}\n \n {/* Buttons */}\n {showButtons && buttons.length > 0 && (\n <div\n className=\"flex gap-4 items-center ml-auto\"\n data-testid=\"table-header-buttons\"\n >\n {buttons.map((button, index) => (\n <div\n key={index}\n data-testid={`table-header-button-${index}`}\n >\n {button.isDropdown && button.dropdownOptions ? (\n /* Dropdown Button */\n <div className=\"relative\">\n <Select\n options={button.dropdownOptions}\n value={button.dropdownValue}\n onChange={(value) => button.onDropdownChange?.(value)}\n placeholder={button.label}\n className={cn(\n 'h-11',\n button.variant === 'outline'\n ? 'border-[#00b56b]'\n : ''\n )}\n />\n </div>\n ) : (\n /* Regular Button */\n <Button\n variant={button.variant === 'outline' ? 'secondary' : 'primary'}\n onClick={button.onClick}\n className=\"h-11\"\n >\n {button.label}\n </Button>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default TableHeader;\n\n","import * as React from 'react';\nimport { CheckCircle, X } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\nexport interface ToastsProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Tipo de toast (light o dark)\n * @default \"light\"\n */\n type?: 'light' | 'dark';\n \n /**\n * Texto del toast\n */\n text: string;\n \n /**\n * Icono personalizado (opcional)\n * Por defecto muestra CheckCircle\n */\n icon?: React.ReactNode;\n \n /**\n * Callback para cerrar el toast\n */\n onClose?: () => void;\n \n /**\n * Clases CSS adicionales\n */\n className?: string;\n}\n\n/**\n * Componente Toasts - Notificaciones temporales\n * \n * Muestra notificaciones breves con dos variantes:\n * - light: Fondo claro para interfaces claras\n * - dark: Fondo oscuro para interfaces oscuras o mayor contraste\n * \n * Incluye un icono (personalizable), texto y botón de cerrar.\n */\nconst Toasts = React.forwardRef<HTMLDivElement, ToastsProps>(\n (\n {\n type = 'light',\n text,\n icon,\n onClose,\n className,\n ...props\n },\n ref\n ) => {\n // Configuración de estilos por tipo\n const typeStyles = {\n light: {\n container: 'bg-[#ecebf0]',\n text: 'text-[#575385]',\n iconColor: 'text-[#312e4d]',\n closeColor: 'text-[#312e4d]',\n },\n dark: {\n container: 'bg-[#3f3c5e]',\n text: 'text-white',\n iconColor: 'text-white',\n closeColor: 'text-white',\n },\n };\n\n const currentType = typeStyles[type];\n\n // Icono por defecto\n const defaultIcon = (\n <CheckCircle \n size={16} \n className={currentType.iconColor}\n />\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-3 p-3 rounded',\n currentType.container,\n className\n )}\n role=\"status\"\n aria-live=\"polite\"\n {...props}\n >\n {/* Body: Icono + Texto */}\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n {/* Icono */}\n <div className=\"flex-shrink-0\">\n {icon || defaultIcon}\n </div>\n\n {/* Texto */}\n <div\n className={cn(\n 'text-base leading-5 whitespace-nowrap',\n currentType.text\n )}\n >\n {text}\n </div>\n </div>\n\n {/* Botón de cerrar */}\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className={cn(\n 'flex-shrink-0 opacity-99 hover:opacity-100 transition-opacity',\n currentType.closeColor\n )}\n aria-label=\"Cerrar notificación\"\n >\n <X size={12} />\n </button>\n )}\n </div>\n );\n }\n);\n\nToasts.displayName = 'Toasts';\n\nexport { Toasts };\n\n"],"names":["r","f","n","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","prefix","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","key","path","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","value","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","bracketDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","classGroupsInConflict","classNames","result","originalClassName","variantModifier","modifierId","classId","conflictGroups","i","group","twJoin","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","twMerge","cn","inputs","ActionCard","React","title","description","icon","action","onClick","props","ref","jsxs","jsx","e","BannerAlerts","variant","currentVariant","AlertTriangle","Info","displayIcon","falsyToString","cx","cva","base","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","buttonVariants","Button","size","iconOnly","asChild","leftIcon","rightIcon","children","Comp","Slot","LOGO_ASSETS","BrandIcons","mode","gradient","alt","getLogoSrc","dimensions","width","height","CardsGrid","columns","tabletColumns","mobileColumns","style","getGapClass","getColumnsClasses","classes","customStyle","child","FeatureCard","iconBackground","$constructor","name","initializer","params","init","inst","def","_","proto","keys","Parent","Definition","_a","fn","$ZodAsyncError","$ZodEncodeError","globalConfig","newConfig","jsonStringifyReplacer","nullish","input","cleanRegex","source","start","end","EVALUATING","defineLazy","object","getter","v","mergeDefs","defs","mergedDescriptors","descriptors","slugify","captureStackTrace","_args","isObject","data","isPlainObject","o","ctor","prot","shallowClone","escapeRegex","str","clone","cl","normalizeParams","_params","aborted","x","startIndex","prefixIssues","issues","iss","unwrapMessage","message","finalizeIssue","ctx","full","getLengthableOrigin","issue","args","util.jsonStringifyReplacer","$ZodError","$ZodRealError","flattenError","error","mapper","fieldErrors","formErrors","sub","formatError","processError","curr","el","_parse","_Err","schema","_ctx","core.$ZodAsyncError","util.finalizeIssue","core.config","util.captureStackTrace","_parseAsync","_safeParse","errors.$ZodError","safeParse","errors.$ZodRealError","_safeParseAsync","safeParseAsync","_encode","_decode","_encodeAsync","_decodeAsync","_safeEncode","_safeDecode","_safeEncodeAsync","_safeDecodeAsync","cuid","cuid2","ulid","xid","ksuid","nanoid","duration","guid","uuid","version","email","_emoji","emoji","ipv4","ipv6","cidrv4","cidrv6","base64","base64url","e164","dateSource","date","timeSource","hhmm","time","datetime","opts","timeRegex","regex","lowercase","uppercase","$ZodCheck","core.$constructor","$ZodCheckMaxLength","payload","val","util.nullish","origin","util.getLengthableOrigin","$ZodCheckMinLength","$ZodCheckLengthEquals","bag","length","tooBig","$ZodCheckStringFormat","_b","$ZodCheckRegex","$ZodCheckLowerCase","regexes.lowercase","$ZodCheckUpperCase","regexes.uppercase","$ZodCheckIncludes","escapedRegex","util.escapeRegex","pattern","$ZodCheckStartsWith","$ZodCheckEndsWith","$ZodCheckOverwrite","$ZodType","checks","ch","runChecks","isAborted","util.aborted","asyncResult","currLen","handleCanaryResult","canary","checkResult","$ZodString","regexes.string","$ZodStringFormat","checks.$ZodCheckStringFormat","$ZodGUID","regexes.guid","$ZodUUID","regexes.uuid","$ZodEmail","regexes.email","$ZodURL","trimmed","url","$ZodEmoji","regexes.emoji","$ZodNanoID","regexes.nanoid","$ZodCUID","regexes.cuid","$ZodCUID2","regexes.cuid2","$ZodULID","regexes.ulid","$ZodXID","regexes.xid","$ZodKSUID","regexes.ksuid","$ZodISODateTime","regexes.datetime","$ZodISODate","regexes.date","$ZodISOTime","regexes.time","$ZodISODuration","regexes.duration","$ZodIPv4","regexes.ipv4","$ZodIPv6","regexes.ipv6","$ZodCIDRv4","regexes.cidrv4","$ZodCIDRv6","regexes.cidrv6","parts","address","prefixNum","isValidBase64","$ZodBase64","regexes.base64","isValidBase64URL","regexes.base64url","c","padded","$ZodBase64URL","$ZodE164","regexes.e164","isValidJWT","token","algorithm","tokensParts","header","parsedHeader","$ZodJWT","handleArrayResult","final","util.prefixIssues","$ZodArray","proms","item","handleUnionResults","results","nonaborted","$ZodUnion","util.defineLazy","option","patterns","p","util.cleanRegex","single","first","async","$ZodIntersection","left","right","handleIntersectionResults","mergeValues","a","b","util.isPlainObject","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","merged","$ZodTransform","core.$ZodEncodeError","_out","output","handleOptionalResult","$ZodOptional","$ZodNullable","$ZodDefault","handleDefaultResult","$ZodPrefault","$ZodNonOptional","handleNonOptionalResult","$ZodCatch","$ZodPipe","handlePipeResult","next","$ZodReadonly","handleReadonlyResult","$ZodCustom","checks.$ZodCheck","handleRefineResult","_iss","util.issue","$ZodRegistry","_meta","meta","pm","registry","globalRegistry","_string","Class","util.normalizeParams","_email","_guid","_uuid","_uuidv4","_uuidv6","_uuidv7","_url","_nanoid","_cuid","_cuid2","_ulid","_xid","_ksuid","_ipv4","_ipv6","_cidrv4","_cidrv6","_base64","_base64url","_e164","_jwt","_isoDateTime","_isoDate","_isoTime","_isoDuration","_maxLength","maximum","checks.$ZodCheckMaxLength","_minLength","minimum","checks.$ZodCheckMinLength","_length","checks.$ZodCheckLengthEquals","_regex","checks.$ZodCheckRegex","_lowercase","checks.$ZodCheckLowerCase","_uppercase","checks.$ZodCheckUpperCase","_includes","includes","checks.$ZodCheckIncludes","_startsWith","checks.$ZodCheckStartsWith","_endsWith","suffix","checks.$ZodCheckEndsWith","_overwrite","tx","checks.$ZodCheckOverwrite","_normalize","form","_trim","_toLowerCase","_toUpperCase","_slugify","util.slugify","_array","element","_refine","_superRefine","_check","_issue","ZodISODateTime","core.$ZodISODateTime","schemas.ZodStringFormat","core._isoDateTime","ZodISODate","core.$ZodISODate","core._isoDate","ZodISOTime","core.$ZodISOTime","core._isoTime","ZodISODuration","core.$ZodISODuration","core._isoDuration","core.formatError","core.flattenError","ZodRealError","parse","core._parse","parseAsync","core._parseAsync","core._safeParse","core._safeParseAsync","encode","core._encode","decode","core._decode","encodeAsync","core._encodeAsync","decodeAsync","core._decodeAsync","safeEncode","core._safeEncode","safeDecode","core._safeDecode","safeEncodeAsync","core._safeEncodeAsync","safeDecodeAsync","core._safeDecodeAsync","ZodType","core.$ZodType","util.mergeDefs","core.clone","reg","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","parse.encode","parse.decode","parse.encodeAsync","parse.decodeAsync","parse.safeEncode","parse.safeDecode","parse.safeEncodeAsync","parse.safeDecodeAsync","check","refine","refinement","superRefine","checks.overwrite","optional","nullable","nonoptional","array","arg","union","intersection","pipe","transform","_default","prefault","_catch","target","readonly","core.globalRegistry","_ZodString","core.$ZodString","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","checks.slugify","ZodString","core._email","ZodEmail","core._url","ZodURL","core._jwt","ZodJWT","core._emoji","ZodEmoji","core._guid","ZodGUID","core._uuid","ZodUUID","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","ZodNanoID","core._cuid","ZodCUID","core._cuid2","ZodCUID2","core._ulid","ZodULID","core._base64","ZodBase64","core._base64url","ZodBase64URL","core._xid","ZodXID","core._ksuid","ZodKSUID","core._ipv4","ZodIPv4","core._ipv6","ZodIPv6","core._cidrv4","ZodCIDRv4","core._cidrv6","ZodCIDRv6","core._e164","ZodE164","iso.datetime","iso.date","iso.time","iso.duration","core._string","ZodStringFormat","core.$ZodStringFormat","core.$ZodEmail","core.$ZodGUID","core.$ZodUUID","core.$ZodURL","core.$ZodEmoji","core.$ZodNanoID","core.$ZodCUID","core.$ZodCUID2","core.$ZodULID","core.$ZodXID","core.$ZodKSUID","core.$ZodIPv4","core.$ZodIPv6","core.$ZodCIDRv4","core.$ZodCIDRv6","core.$ZodBase64","core.$ZodBase64URL","core.$ZodE164","core.$ZodJWT","ZodArray","core.$ZodArray","minLength","maxLength","len","core._array","ZodUnion","core.$ZodUnion","options","ZodIntersection","core.$ZodIntersection","ZodTransform","core.$ZodTransform","ZodOptional","core.$ZodOptional","innerType","ZodNullable","core.$ZodNullable","ZodDefault","core.$ZodDefault","defaultValue","util.shallowClone","ZodPrefault","core.$ZodPrefault","ZodNonOptional","core.$ZodNonOptional","ZodCatch","core.$ZodCatch","catchValue","ZodPipe","core.$ZodPipe","in_","out","ZodReadonly","core.$ZodReadonly","ZodCustom","core.$ZodCustom","core._refine","core._superRefine","metadata","withMetadataArgument","_arguments","compare","pa","pb","na","nb","objectConstructor","_typeof","_classCallCheck","_defineProperties","t","_toPropertyKey","_createClass","_toPrimitive","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","validateMetadata","setVersion","countryCode","country","callingCode","countryCodes","NumberingPlan","_type","globalMetadataObject","_this","formats","Format","_type2","getType","Type","format","FIRST_GROUP_ONLY_PREFIX_PATTERN","type","types","typeOf","getCountryCallingCode","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","actual_length","minimum_length","isPossiblePhoneNumber","isPossibleNumber","matchesEntirely","text","regularExpressionText","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","NON_FIXED_LINE_PHONE_TYPES","getNumberType","isNumberTypeEqualTo","_iterator","_step","isValidNumber","getPossibleCountriesForNumber","_metadata","possibleCountries","couldNationalNumberBelongToCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","DASHES","SLASHES","DOTS","WHITESPACE","BRACKETS","TILDES","VALID_PUNCTUATION","PLUS_CHARS","CAPTURING_DIGIT_PATTERN","stripIddPrefix","number","countryMetadata","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","carrierCode","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","nationalPrefix","possiblePositionOfTheFirstCapturedGroup","possibleNationalPrefix","getCountryByNationalNumber","nationalPhoneNumber","_ref","countries","getCountryByCallingCode","extractNationalNumber","_extractNationalNumbe","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","nationalNumberBefore","nationalNumberAfter","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","defaultCountry","defaultCallingCode","countryCallingCode","possibleShorterNumber","possibleShorterNationalNumber","_extractNationalNumbe2","extractCountryCallingCode","isNumberWithIddPrefix","numberWithoutIDD","_extractCountryCallin","shorterNumber","_countryCallingCode","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","SINGLE_IDD_PREFIX_REG_EXP","getIddPrefix","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","createExtensionPattern","purpose","extLimitAfterExplicitLabel","extLimitAfterLikelyLabel","extLimitAfterAmbiguousChar","extLimitWhenNotSure","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","explicitExtLabels","ambiguousExtLabels","ambiguousSeparator","possibleSeparatorsNumberExtLabelNoComma","autoDiallingAndExtLabelsFound","rfcExtn","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","isViablePhoneNumberStart","formatRFC3966","ext","DEFAULT_OPTIONS","extension","formatNumber","merge","formatNationalNumber","addExtension","formatIDD","formatAs","chooseFormatForNumber","availableFormats","pickFirstMatchingElement","lastLeadingDigitsPattern","formatExtension","fromCountry","fromCountryCallingCode","iddPrefix","_len","objects","_key","elements","testFunction","ownKeys","_objectSpread","_defineProperty","PhoneNumber","countryOrCountryCallingCode","e164Number","E164_NUMBER_REGEXP","_getCountryAndCountry","getCountryAndCountryCallingCode","phoneNumber","_format","isCountryCode","metadataJson","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","_assertThisInitialized","_inherits","_setPrototypeOf","_wrapNativeSuper","_isNativeFunction","Wrapper","_construct","ParseError","_Error","code","EXTN_PATTERN","extractExtension","numberWithoutExtension","matches","DIGITS","parseDigit","character","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","eventListener","PLUS_SIGN","RFC3966_VISUAL_SEPARATOR_","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","ALPHANUM_","RFC3966_DOMAINLABEL_","VALID_ALPHA_","RFC3966_TOPLABEL_","RFC3966_DOMAINNAME_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractPhoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","isPhoneContextValid","phoneContext","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","extractFormattedPhoneNumber","phoneNumberString","indexOfRfc3966Prefix","indexOfNationalNumber","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","parseInput","formattedPhoneNumber","_parsePhoneNumber","parsePhoneNumber","countryCallingCodeSource","valid","_extractFormattedPhoneNumber","extract","throwOnError","startsAt","v2","withExtensionStripped","exactCountry","parsePhoneNumberWithError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","l","u","normalizeArguments","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_normalizeArguments","parsePhoneNumberWithError_","_parsePhoneNumberWithError","validateInput","validation","z.string","Input","forwardRef","onChange","disabled","placeholder","showPasswordToggle","validateOnChange","validateOnBlur","isFocused","setIsFocused","useState","showPassword","setShowPassword","validationError","setValidationError","hasError","displayError","isPassword","inputType","useEffect","errorMsg","handleChange","newValue","handleFocus","handleBlur","togglePasswordVisibility","containerStyles","inputStyles","iconButtonStyles","EyeOff","Eye","KPIComparisonCustom","primaryText","primaryTextColor","secondaryText","secondaryTextColor","TrendUpIcon","TrendDownIcon","WarningIcon","KPIComparison","percentage","trend","showWarning","isPositive","formattedPercentage","tagStyles","KPICardCustom","content","footer","tag","tagStyle","DefaultWarningIcon","color","TriangleAlert","KPICard","unit","total","comparison","iconColor","bodyText","button","iconColors","Loader","show","OptionCard","selected","onSelect","badgeStyles","OrderCardCustom","count","countLabel","infoLine1","infoLine2","badge","badgeStyle","iconSize","iconStrokeWidth","ReceivedIcon","ReceiptText","PickingIcon","Package","DispatchedIcon","Route","DeliveredIcon","CircleCheck","stateConfig","OrderCard","state","grossSales","netSales","hasDelays","delayCount","onDelaysClick","onFilterClick","currencySymbol","IconComponent","formatCurrency","amount","PaginationLib","currentPage","totalPages","onPageChange","handlePrevious","handleNext","handlePageClick","page","pageNumbers","pages","pageNum","isActive","clamp","min","max","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","Provider","scope","context","Context","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","createCollection","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlotImpl","createSlot","CollectionSlot","forwardedRef","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlotImpl","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","DirectionContext","useDirection","localDir","globalDir","NODES","Primitive","primitive","Node","primitiveProps","dispatchDiscreteCustomEvent","ReactDOM","useCallbackRef","callback","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","force","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handler","detail","discrete","useFocusGuards","edgeGuards","createFocusGuard","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container","setContainer","onMountAutoFocus","onUnmountAutoFocus","lastFocusedElementRef","focusScope","handleFocusIn2","focus","handleFocusOut2","relatedTarget","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","removeLinks","getTabbableCandidates","unmountEvent","isTabKey","focusedElement","container2","last","getTabbableEdges","candidates","select","candidate","findVisible","nodes","walker","isHiddenInput","isHidden","upTo","isSelectableInput","createFocusScopesStack","stack","activeFocusScope","arrayRemove","updatedArray","items","useLayoutEffect2","useReactId","useId","deterministicId","id","setId","useLayoutEffect","reactId","sides","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","evaluate","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","getPaddingObject","rectToClientRect","rect","y","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","d","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","getNodeName","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","selector","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","root","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","isClient","noop","deepEqual","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","whileElementsMounted","open","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","floatingStyles","initialStyles","isRef","arrow$2","deps","NAME","Arrow","arrowProps","Root","useSize","setSize","entry","borderSizeEntry","borderSize","POPPER_NAME","createPopperContext","createPopperScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","anchorRef","previousAnchor","CONTENT_NAME","PopperContentProvider","useContentContext","PopperContent","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","contentProps","setContent","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","hasExplicitBoundaries","isNotNull","isPositioned","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","placedSide","placedAlign","getSideAndAlignFromPlacement","handlePlaced","arrowX","arrowY","cannotCenterArrow","contentZIndex","setContentZIndex","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","Root2","Anchor","Content","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useInsertionEffect","useControllableState","prop","defaultProp","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","isControlledRef","wasControlled","setValue","nextValue","value2","isFunction","prevValueRef","usePrevious","VISUALLY_HIDDEN_STYLES","VisuallyHidden","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","parent","targets","correctedTarget","applyAttributeToOthers","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","__assign","s","__rest","__spreadArray","to","from","pack","ar","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","useIsomorphicLayoutEffect","currentValues","useMergeRefs","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","innerCreateMedium","defaults","buffer","assigned","medium","cb","cbs","pendingQueue","executeQueue","cycle","filter","createSidecarMedium","SideCar","sideCar","rest","Target","exportSidecar","exported","effectCar","nothing","RemoveScroll","parentRef","callbacks","setCallbacks","forwardProps","removeScrollBar","enabled","shards","noRelative","noIsolation","inert","allowPinchZoom","Container","gapMode","containerRef","containerProps","getNonce","makeStyleTag","nonce","injectStyles","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","styleHookSingleton","sheet","styles","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","getOffset","cs","getGapWidth","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","getCurrentUseCounter","useLockAttribute","newCounter","RemoveScrollBar","noImportant","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","current","isScrollable","elementCouldBeScrolled","getScrollVariables","scrollHeight","clientHeight","getVScrollVariables","scrollTop","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","handleScroll","endTarget","sourceDelta","noOverscroll","directionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","position","scroll_1","capacity","elementScroll","parent_1","getTouchXY","getDeltaXY","extractRef","deltaCompare","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","touch","touchStart","deltaX","deltaY","currentAxis","moveDirection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","getOutermostShadowParent","scrollTouchStart","scrollWheel","scrollTouchMove","shadowParent","ReactRemoveScroll","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","createSelectContext","usePopperScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","openProp","defaultOpen","onOpenChange","valueProp","onValueChange","dir","autoComplete","required","popperScope","trigger","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","setOpen","triggerPointerDownPosRef","isFormControl","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","PopperPrimitive.Root","prev","optionsSet","SelectBubbleInput","TRIGGER_NAME","SelectTrigger","triggerProps","isDisabled","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","currentItem","nextItem","findNextItem","handleOpen","pointerEvent","PopperPrimitive.Anchor","shouldShowPlaceholder","isTypingAhead","VALUE_NAME","SelectValue","valueProps","onValueNodeHasChildrenChange","hasChildren","Fragment","ICON_NAME","SelectIcon","iconProps","SelectPortal","PortalPrimitive","SelectContent","fragment","setFragment","frag","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","onCloseAutoFocus","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","setIsPositioned","firstValidItemFoundRef","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","focusSelectedItem","pointerMoveDelta","handlePointerMove","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","popperProps","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","rightDelta","leftEdge","clampedRight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","isFirstItem","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","SEPARATOR_NAME","SelectSeparator","separatorProps","SelectArrow","PopperPrimitive.Arrow","BUBBLE_INPUT_NAME","prevValue","selectProto","onSearchChange","handleSearchChange","timerRef","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","Trigger","Value","Icon","Content2","Viewport","Item","ItemText","selectedOption","opt","displayText","SelectPrimitive.Root","SelectPrimitive.Trigger","SelectPrimitive.Value","SelectPrimitive.Icon","ChevronDown","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Item","SelectPrimitive.ItemText","Switcher","status","SwitchPrimitive","Table","rowsPerPage","showPagination","rowClassName","controlledPage","loading","emptyMessage","internalPage","setInternalPage","handlePageChange","endIndex","paginatedData","renderCell","column","row","rowIndex","getRowClassName","TableHeader","showTitle","searchPlaceholder","searchValue","filters","showFilters","buttons","showButtons","cards","showCards","card","Search","ListFilter","Toasts","onClose","currentType","defaultIcon","CheckCircle","X"],"mappings":";;;;;;;;AAAA,SAASA,GAAE,GAAE;AAAC,MAAI,GAAEC,GAAEC,IAAE;AAAG,MAAa,OAAO,KAAjB,YAA8B,OAAO,KAAjB,SAAmB,CAAAA,KAAG;AAAA,WAAoB,OAAO,KAAjB,SAAmB,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,QAAI,IAAE,EAAE;AAAO,SAAI,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,CAAC,MAAID,IAAED,GAAE,EAAE,CAAC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAA,EAAE,MAAM,MAAIA,KAAK,EAAE,GAAEA,CAAC,MAAIC,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;AAAQ,SAASC,KAAM;AAAC,WAAQ,GAAE,GAAEF,IAAE,GAAEC,IAAE,IAAG,IAAE,UAAU,QAAOD,IAAE,GAAEA,IAAI,EAAC,IAAE,UAAUA,CAAC,OAAK,IAAED,GAAE,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAG;AAAG,SAAOA;AAAC;ACA/W,MAAME,KAAuB,KACvBC,KAAwB,CAAAC,MAAU;AACtC,QAAMC,IAAWC,GAAeF,CAAM,GAChC;AAAA,IACJ,wBAAAG;AAAA,IACA,gCAAAC;AAAA,EACJ,IAAMJ;AAgBJ,SAAO;AAAA,IACL,iBAhBsB,CAAAK,MAAa;AACnC,YAAMC,IAAaD,EAAU,MAAMP,EAAoB;AAEvD,aAAIQ,EAAW,CAAC,MAAM,MAAMA,EAAW,WAAW,KAChDA,EAAW,MAAK,GAEXC,GAAkBD,GAAYL,CAAQ,KAAKO,GAA+BH,CAAS;AAAA,IAC5F;AAAA,IAUE,6BATkC,CAACI,GAAcC,MAAuB;AACxE,YAAMC,IAAYR,EAAuBM,CAAY,KAAK,CAAA;AAC1D,aAAIC,KAAsBN,EAA+BK,CAAY,IAC5D,CAAC,GAAGE,GAAW,GAAGP,EAA+BK,CAAY,CAAC,IAEhEE;AAAA,IACT;AAAA,EAIF;AACA,GACMJ,KAAoB,CAACD,GAAYM,MAAoB;AACzD,MAAIN,EAAW,WAAW;AACxB,WAAOM,EAAgB;AAEzB,QAAMC,IAAmBP,EAAW,CAAC,GAC/BQ,IAAsBF,EAAgB,SAAS,IAAIC,CAAgB,GACnEE,IAA8BD,IAAsBP,GAAkBD,EAAW,MAAM,CAAC,GAAGQ,CAAmB,IAAI;AACxH,MAAIC;AACF,WAAOA;AAET,MAAIH,EAAgB,WAAW,WAAW;AACxC;AAEF,QAAMI,IAAYV,EAAW,KAAKR,EAAoB;AACtD,SAAOc,EAAgB,WAAW,KAAK,CAAC;AAAA,IACtC,WAAAK;AAAA,EACJ,MAAQA,EAAUD,CAAS,CAAC,GAAG;AAC/B,GACME,KAAyB,cACzBV,KAAiC,CAAAH,MAAa;AAClD,MAAIa,GAAuB,KAAKb,CAAS,GAAG;AAC1C,UAAMc,IAA6BD,GAAuB,KAAKb,CAAS,EAAE,CAAC,GACrEe,IAAWD,GAA4B,UAAU,GAAGA,EAA2B,QAAQ,GAAG,CAAC;AACjG,QAAIC;AAEF,aAAO,gBAAgBA;AAAA,EAE3B;AACF,GAIMlB,KAAiB,CAAAF,MAAU;AAC/B,QAAM;AAAA,IACJ,OAAAqB;AAAA,IACA,QAAAC;AAAA,EACJ,IAAMtB,GACEC,IAAW;AAAA,IACf,UAAU,oBAAI,IAAG;AAAA,IACjB,YAAY,CAAA;AAAA,EAChB;AAEE,SADkCsB,GAA6B,OAAO,QAAQvB,EAAO,WAAW,GAAGsB,CAAM,EAC/E,QAAQ,CAAC,CAACb,GAAce,CAAU,MAAM;AAChE,IAAAC,GAA0BD,GAAYvB,GAAUQ,GAAcY,CAAK;AAAA,EACrE,CAAC,GACMpB;AACT,GACMwB,KAA4B,CAACD,GAAYZ,GAAiBH,GAAcY,MAAU;AACtF,EAAAG,EAAW,QAAQ,CAAAE,MAAmB;AACpC,QAAI,OAAOA,KAAoB,UAAU;AACvC,YAAMC,IAAwBD,MAAoB,KAAKd,IAAkBgB,GAAQhB,GAAiBc,CAAe;AACjH,MAAAC,EAAsB,eAAelB;AACrC;AAAA,IACF;AACA,QAAI,OAAOiB,KAAoB,YAAY;AACzC,UAAIG,GAAcH,CAAe,GAAG;AAClC,QAAAD,GAA0BC,EAAgBL,CAAK,GAAGT,GAAiBH,GAAcY,CAAK;AACtF;AAAA,MACF;AACA,MAAAT,EAAgB,WAAW,KAAK;AAAA,QAC9B,WAAWc;AAAA,QACX,cAAAjB;AAAA,MACR,CAAO;AACD;AAAA,IACF;AACA,WAAO,QAAQiB,CAAe,EAAE,QAAQ,CAAC,CAACI,GAAKN,CAAU,MAAM;AAC7D,MAAAC,GAA0BD,GAAYI,GAAQhB,GAAiBkB,CAAG,GAAGrB,GAAcY,CAAK;AAAA,IAC1F,CAAC;AAAA,EACH,CAAC;AACH,GACMO,KAAU,CAAChB,GAAiBmB,MAAS;AACzC,MAAIC,IAAyBpB;AAC7B,SAAAmB,EAAK,MAAMjC,EAAoB,EAAE,QAAQ,CAAAmC,MAAY;AACnD,IAAKD,EAAuB,SAAS,IAAIC,CAAQ,KAC/CD,EAAuB,SAAS,IAAIC,GAAU;AAAA,MAC5C,UAAU,oBAAI,IAAG;AAAA,MACjB,YAAY,CAAA;AAAA,IACpB,CAAO,GAEHD,IAAyBA,EAAuB,SAAS,IAAIC,CAAQ;AAAA,EACvE,CAAC,GACMD;AACT,GACMH,KAAgB,CAAAK,MAAQA,EAAK,eAC7BX,KAA+B,CAACY,GAAmBb,MAClDA,IAGEa,EAAkB,IAAI,CAAC,CAAC1B,GAAce,CAAU,MAAM;AAC3D,QAAMY,IAAqBZ,EAAW,IAAI,CAAAE,MACpC,OAAOA,KAAoB,WACtBJ,IAASI,IAEd,OAAOA,KAAoB,WACtB,OAAO,YAAY,OAAO,QAAQA,CAAe,EAAE,IAAI,CAAC,CAACI,GAAKO,CAAK,MAAM,CAACf,IAASQ,GAAKO,CAAK,CAAC,CAAC,IAEjGX,CACR;AACD,SAAO,CAACjB,GAAc2B,CAAkB;AAC1C,CAAC,IAbQD,GAiBLG,KAAiB,CAAAC,MAAgB;AACrC,MAAIA,IAAe;AACjB,WAAO;AAAA,MACL,KAAK,MAAA;AAAA;AAAA,MACL,KAAK,MAAM;AAAA,MAAC;AAAA,IAClB;AAEE,MAAIC,IAAY,GACZC,IAAQ,oBAAI,IAAG,GACfC,IAAgB,oBAAI,IAAG;AAC3B,QAAMC,IAAS,CAACb,GAAKO,MAAU;AAC7B,IAAAI,EAAM,IAAIX,GAAKO,CAAK,GACpBG,KACIA,IAAYD,MACdC,IAAY,GACZE,IAAgBD,GAChBA,IAAQ,oBAAI,IAAG;AAAA,EAEnB;AACA,SAAO;AAAA,IACL,IAAIX,GAAK;AACP,UAAIO,IAAQI,EAAM,IAAIX,CAAG;AACzB,UAAIO,MAAU;AACZ,eAAOA;AAET,WAAKA,IAAQK,EAAc,IAAIZ,CAAG,OAAO;AACvC,eAAAa,EAAOb,GAAKO,CAAK,GACVA;AAAA,IAEX;AAAA,IACA,IAAIP,GAAKO,GAAO;AACd,MAAII,EAAM,IAAIX,CAAG,IACfW,EAAM,IAAIX,GAAKO,CAAK,IAEpBM,EAAOb,GAAKO,CAAK;AAAA,IAErB;AAAA,EACJ;AACA,GACMO,KAAqB,KACrBC,KAAuB,CAAA7C,MAAU;AACrC,QAAM;AAAA,IACJ,WAAA8C;AAAA,IACA,4BAAAC;AAAA,EACJ,IAAM/C,GACEgD,IAA6BF,EAAU,WAAW,GAClDG,IAA0BH,EAAU,CAAC,GACrCI,IAAkBJ,EAAU,QAE5BK,IAAiB,CAAA9C,MAAa;AAClC,UAAM+C,IAAY,CAAA;AAClB,QAAIC,IAAe,GACfC,IAAgB,GAChBC;AACJ,aAASC,IAAQ,GAAGA,IAAQnD,EAAU,QAAQmD,KAAS;AACrD,UAAIC,IAAmBpD,EAAUmD,CAAK;AACtC,UAAIH,MAAiB,GAAG;AACtB,YAAII,MAAqBR,MAA4BD,KAA8B3C,EAAU,MAAMmD,GAAOA,IAAQN,CAAe,MAAMJ,IAAY;AACjJ,UAAAM,EAAU,KAAK/C,EAAU,MAAMiD,GAAeE,CAAK,CAAC,GACpDF,IAAgBE,IAAQN;AACxB;AAAA,QACF;AACA,YAAIO,MAAqB,KAAK;AAC5B,UAAAF,IAA0BC;AAC1B;AAAA,QACF;AAAA,MACF;AACA,MAAIC,MAAqB,MACvBJ,MACSI,MAAqB,OAC9BJ;AAAA,IAEJ;AACA,UAAMK,IAAqCN,EAAU,WAAW,IAAI/C,IAAYA,EAAU,UAAUiD,CAAa,GAC3GK,IAAuBD,EAAmC,WAAWd,EAAkB,GACvFgB,IAAgBD,IAAuBD,EAAmC,UAAU,CAAC,IAAIA,GACzFG,IAA+BN,KAA2BA,IAA0BD,IAAgBC,IAA0BD,IAAgB;AACpJ,WAAO;AAAA,MACL,WAAAF;AAAA,MACA,sBAAAO;AAAA,MACA,eAAAC;AAAA,MACA,8BAAAC;AAAA,IACN;AAAA,EACE;AACA,SAAId,IACK,CAAA1C,MAAa0C,EAA2B;AAAA,IAC7C,WAAA1C;AAAA,IACA,gBAAA8C;AAAA,EACN,CAAK,IAEIA;AACT,GAMMW,KAAgB,CAAAV,MAAa;AACjC,MAAIA,EAAU,UAAU;AACtB,WAAOA;AAET,QAAMW,IAAkB,CAAA;AACxB,MAAIC,IAAoB,CAAA;AACxB,SAAAZ,EAAU,QAAQ,CAAAa,MAAY;AAE5B,IAD2BA,EAAS,CAAC,MAAM,OAEzCF,EAAgB,KAAK,GAAGC,EAAkB,KAAI,GAAIC,CAAQ,GAC1DD,IAAoB,CAAA,KAEpBA,EAAkB,KAAKC,CAAQ;AAAA,EAEnC,CAAC,GACDF,EAAgB,KAAK,GAAGC,EAAkB,KAAI,CAAE,GACzCD;AACT,GACMG,KAAoB,CAAAlE,OAAW;AAAA,EACnC,OAAOsC,GAAetC,EAAO,SAAS;AAAA,EACtC,gBAAgB6C,GAAqB7C,CAAM;AAAA,EAC3C,GAAGD,GAAsBC,CAAM;AACjC,IACMmE,KAAsB,OACtBC,KAAiB,CAACC,GAAWC,MAAgB;AACjD,QAAM;AAAA,IACJ,gBAAAnB;AAAA,IACA,iBAAAoB;AAAA,IACA,6BAAAC;AAAA,EACJ,IAAMF,GAQEG,IAAwB,CAAA,GACxBC,IAAaL,EAAU,KAAI,EAAG,MAAMF,EAAmB;AAC7D,MAAIQ,IAAS;AACb,WAASnB,IAAQkB,EAAW,SAAS,GAAGlB,KAAS,GAAGA,KAAS,GAAG;AAC9D,UAAMoB,IAAoBF,EAAWlB,CAAK,GACpC;AAAA,MACJ,WAAAJ;AAAA,MACA,sBAAAO;AAAA,MACA,eAAAC;AAAA,MACA,8BAAAC;AAAA,IACN,IAAQV,EAAeyB,CAAiB;AACpC,QAAIlE,IAAqB,EAAQmD,GAC7BpD,IAAe8D,EAAgB7D,IAAqBkD,EAAc,UAAU,GAAGC,CAA4B,IAAID,CAAa;AAChI,QAAI,CAACnD,GAAc;AACjB,UAAI,CAACC,GAAoB;AAEvB,QAAAiE,IAASC,KAAqBD,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,MACF;AAEA,UADAlE,IAAe8D,EAAgBX,CAAa,GACxC,CAACnD,GAAc;AAEjB,QAAAkE,IAASC,KAAqBD,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,MACF;AACA,MAAAjE,IAAqB;AAAA,IACvB;AACA,UAAMmE,IAAkBf,GAAcV,CAAS,EAAE,KAAK,GAAG,GACnD0B,IAAanB,IAAuBkB,IAAkBjC,KAAqBiC,GAC3EE,IAAUD,IAAarE;AAC7B,QAAIgE,EAAsB,SAASM,CAAO;AAExC;AAEF,IAAAN,EAAsB,KAAKM,CAAO;AAClC,UAAMC,IAAiBR,EAA4B/D,GAAcC,CAAkB;AACnF,aAASuE,IAAI,GAAGA,IAAID,EAAe,QAAQ,EAAEC,GAAG;AAC9C,YAAMC,IAAQF,EAAeC,CAAC;AAC9B,MAAAR,EAAsB,KAAKK,IAAaI,CAAK;AAAA,IAC/C;AAEA,IAAAP,IAASC,KAAqBD,EAAO,SAAS,IAAI,MAAMA,IAASA;AAAA,EACnE;AACA,SAAOA;AACT;AAWA,SAASQ,KAAS;AAChB,MAAI3B,IAAQ,GACR4B,GACAC,GACAC,IAAS;AACb,SAAO9B,IAAQ,UAAU;AACvB,KAAI4B,IAAW,UAAU5B,GAAO,OAC1B6B,IAAgBE,GAAQH,CAAQ,OAClCE,MAAWA,KAAU,MACrBA,KAAUD;AAIhB,SAAOC;AACT;AACA,MAAMC,KAAU,CAAAC,MAAO;AACrB,MAAI,OAAOA,KAAQ;AACjB,WAAOA;AAET,MAAIH,GACAC,IAAS;AACb,WAASG,IAAI,GAAGA,IAAID,EAAI,QAAQC;AAC9B,IAAID,EAAIC,CAAC,MACHJ,IAAgBE,GAAQC,EAAIC,CAAC,CAAC,OAChCH,MAAWA,KAAU,MACrBA,KAAUD;AAIhB,SAAOC;AACT;AACA,SAASI,GAAoBC,MAAsBC,GAAkB;AACnE,MAAItB,GACAuB,GACAC,GACAC,IAAiBC;AACrB,WAASA,EAAkB3B,GAAW;AACpC,UAAMrE,IAAS4F,EAAiB,OAAO,CAACK,GAAgBC,MAAwBA,EAAoBD,CAAc,GAAGN,GAAmB;AACxI,WAAArB,IAAcJ,GAAkBlE,CAAM,GACtC6F,IAAWvB,EAAY,MAAM,KAC7BwB,IAAWxB,EAAY,MAAM,KAC7ByB,IAAiBI,GACVA,EAAc9B,CAAS;AAAA,EAChC;AACA,WAAS8B,EAAc9B,GAAW;AAChC,UAAM+B,IAAeP,EAASxB,CAAS;AACvC,QAAI+B;AACF,aAAOA;AAET,UAAMzB,IAASP,GAAeC,GAAWC,CAAW;AACpD,WAAAwB,EAASzB,GAAWM,CAAM,GACnBA;AAAA,EACT;AACA,SAAO,WAA6B;AAClC,WAAOoB,EAAeZ,GAAO,MAAM,MAAM,SAAS,CAAC;AAAA,EACrD;AACF;AACA,MAAMkB,IAAY,CAAAvE,MAAO;AACvB,QAAMwE,IAAc,CAAAjF,MAASA,EAAMS,CAAG,KAAK,CAAA;AAC3C,SAAAwE,EAAY,gBAAgB,IACrBA;AACT,GACMC,KAAsB,8BACtBC,KAAgB,cAChBC,KAA6B,oBAAI,IAAI,CAAC,MAAM,QAAQ,QAAQ,CAAC,GAC7DC,KAAkB,oCAClBC,KAAkB,6HAClBC,KAAqB,4CAErBC,KAAc,mEACdC,KAAa,gGACbC,KAAW,CAAA1E,MAAS2E,GAAS3E,CAAK,KAAKoE,GAAc,IAAIpE,CAAK,KAAKmE,GAAc,KAAKnE,CAAK,GAC3F4E,KAAoB,CAAA5E,MAAS6E,GAAoB7E,GAAO,UAAU8E,EAAY,GAC9EH,KAAW,CAAA3E,MAAS,EAAQA,KAAU,CAAC,OAAO,MAAM,OAAOA,CAAK,CAAC,GACjE+E,KAAoB,CAAA/E,MAAS6E,GAAoB7E,GAAO,UAAU2E,EAAQ,GAC1EK,KAAY,CAAAhF,MAAS,EAAQA,KAAU,OAAO,UAAU,OAAOA,CAAK,CAAC,GACrEiF,KAAY,CAAAjF,MAASA,EAAM,SAAS,GAAG,KAAK2E,GAAS3E,EAAM,MAAM,GAAG,EAAE,CAAC,GACvEkF,IAAmB,CAAAlF,MAASkE,GAAoB,KAAKlE,CAAK,GAC1DmF,KAAe,CAAAnF,MAASqE,GAAgB,KAAKrE,CAAK,GAClDoF,KAA0B,oBAAI,IAAI,CAAC,UAAU,QAAQ,YAAY,CAAC,GAClEC,KAAkB,CAAArF,MAAS6E,GAAoB7E,GAAOoF,IAAYE,EAAO,GACzEC,KAAsB,CAAAvF,MAAS6E,GAAoB7E,GAAO,YAAYsF,EAAO,GAC7EE,KAA2B,oBAAI,IAAI,CAAC,SAAS,KAAK,CAAC,GACnDC,KAAmB,CAAAzF,MAAS6E,GAAoB7E,GAAOwF,IAAaE,EAAO,GAC3EC,KAAoB,CAAA3F,MAAS6E,GAAoB7E,GAAO,IAAI4F,EAAQ,GACpEC,KAAQ,MAAM,IACdhB,KAAsB,CAAC7E,GAAO8F,GAAOC,MAAc;AACvD,QAAMzD,IAAS4B,GAAoB,KAAKlE,CAAK;AAC7C,SAAIsC,IACEA,EAAO,CAAC,IACH,OAAOwD,KAAU,WAAWxD,EAAO,CAAC,MAAMwD,IAAQA,EAAM,IAAIxD,EAAO,CAAC,CAAC,IAEvEyD,EAAUzD,EAAO,CAAC,CAAC,IAErB;AACT,GACMwC,KAAe,CAAA9E;AAAA;AAAA;AAAA;AAAA,EAIrBsE,GAAgB,KAAKtE,CAAK,KAAK,CAACuE,GAAmB,KAAKvE,CAAK;AAAA,GACvDsF,KAAU,MAAM,IAChBM,KAAW,CAAA5F,MAASwE,GAAY,KAAKxE,CAAK,GAC1C0F,KAAU,CAAA1F,MAASyE,GAAW,KAAKzE,CAAK,GAmBxCgG,KAAmB,MAAM;AAC7B,QAAMC,IAASjC,EAAU,QAAQ,GAC3BkC,IAAUlC,EAAU,SAAS,GAC7BmC,IAAOnC,EAAU,MAAM,GACvBoC,IAAapC,EAAU,YAAY,GACnCqC,IAAcrC,EAAU,aAAa,GACrCsC,IAAetC,EAAU,cAAc,GACvCuC,IAAgBvC,EAAU,eAAe,GACzCwC,IAAcxC,EAAU,aAAa,GACrCyC,IAAWzC,EAAU,UAAU,GAC/B0C,IAAY1C,EAAU,WAAW,GACjC2C,IAAY3C,EAAU,WAAW,GACjC4C,IAAS5C,EAAU,QAAQ,GAC3B6C,IAAM7C,EAAU,KAAK,GACrB8C,IAAqB9C,EAAU,oBAAoB,GACnD+C,IAA6B/C,EAAU,4BAA4B,GACnEgD,IAAQhD,EAAU,OAAO,GACzBiD,IAASjD,EAAU,QAAQ,GAC3BkD,IAAUlD,EAAU,SAAS,GAC7BmD,IAAUnD,EAAU,SAAS,GAC7BoD,IAAWpD,EAAU,UAAU,GAC/BqD,IAAQrD,EAAU,OAAO,GACzBsD,IAAQtD,EAAU,OAAO,GACzBuD,IAAOvD,EAAU,MAAM,GACvBwD,IAAQxD,EAAU,OAAO,GACzByD,IAAYzD,EAAU,WAAW,GACjC0D,IAAgB,MAAM,CAAC,QAAQ,WAAW,MAAM,GAChDC,IAAc,MAAM,CAAC,QAAQ,UAAU,QAAQ,WAAW,QAAQ,GAClEC,IAAiC,MAAM,CAAC,QAAQ1C,GAAkBgB,CAAO,GACzE2B,IAA0B,MAAM,CAAC3C,GAAkBgB,CAAO,GAC1D4B,IAAiC,MAAM,CAAC,IAAIpD,IAAUE,EAAiB,GACvEmD,IAAgC,MAAM,CAAC,QAAQpD,IAAUO,CAAgB,GACzE8C,IAAe,MAAM,CAAC,UAAU,UAAU,QAAQ,eAAe,YAAY,SAAS,gBAAgB,aAAa,KAAK,GACxHC,IAAgB,MAAM,CAAC,SAAS,UAAU,UAAU,UAAU,MAAM,GACpEC,IAAgB,MAAM,CAAC,UAAU,YAAY,UAAU,WAAW,UAAU,WAAW,eAAe,cAAc,cAAc,cAAc,cAAc,aAAa,OAAO,cAAc,SAAS,YAAY,GACrNC,IAAW,MAAM,CAAC,SAAS,OAAO,UAAU,WAAW,UAAU,UAAU,SAAS,GACpFC,IAAkB,MAAM,CAAC,IAAI,KAAKlD,CAAgB,GAClDmD,KAAY,MAAM,CAAC,QAAQ,SAAS,OAAO,cAAc,QAAQ,QAAQ,SAAS,QAAQ,GAC1FC,KAAwB,MAAM,CAAC3D,IAAUO,CAAgB;AAC/D,SAAO;AAAA,IACL,WAAW;AAAA,IACX,WAAW;AAAA,IACX,OAAO;AAAA,MACL,QAAQ,CAACW,EAAK;AAAA,MACd,SAAS,CAACnB,IAAUE,EAAiB;AAAA,MACrC,MAAM,CAAC,QAAQ,IAAIO,IAAcD,CAAgB;AAAA,MACjD,YAAYoD,GAAqB;AAAA,MACjC,aAAa,CAACrC,CAAM;AAAA,MACpB,cAAc,CAAC,QAAQ,IAAI,QAAQd,IAAcD,CAAgB;AAAA,MACjE,eAAe2C,EAAuB;AAAA,MACtC,aAAaC,EAA8B;AAAA,MAC3C,UAAUQ,GAAqB;AAAA,MAC/B,WAAWF,EAAe;AAAA,MAC1B,WAAWE,GAAqB;AAAA,MAChC,QAAQF,EAAe;AAAA,MACvB,KAAKP,EAAuB;AAAA,MAC5B,oBAAoB,CAAC5B,CAAM;AAAA,MAC3B,4BAA4B,CAAChB,IAAWL,EAAiB;AAAA,MACzD,OAAOgD,EAA8B;AAAA,MACrC,QAAQA,EAA8B;AAAA,MACtC,SAASU,GAAqB;AAAA,MAC9B,SAAST,EAAuB;AAAA,MAChC,UAAUS,GAAqB;AAAA,MAC/B,OAAOA,GAAqB;AAAA,MAC5B,OAAOF,EAAe;AAAA,MACtB,MAAME,GAAqB;AAAA,MAC3B,OAAOT,EAAuB;AAAA,MAC9B,WAAWA,EAAuB;AAAA,IACxC;AAAA,IACI,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMX,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,UAAU,SAAS3C,CAAgB;AAAA,MAC5D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvB,SAAS,CAAC;AAAA,QACR,SAAS,CAACC,EAAY;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAekD,GAAS;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,GAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,cAAc,cAAc;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,SAAS,OAAO;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC,UAAU,SAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC,SAAS,gBAAgB,UAAU,QAAQ,eAAe,SAAS,gBAAgB,iBAAiB,cAAc,gBAAgB,sBAAsB,sBAAsB,sBAAsB,mBAAmB,aAAa,aAAa,QAAQ,eAAe,YAAY,aAAa,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnT,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MACvD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,cAAc,CAAC;AAAA,QACb,QAAQ,CAAC,WAAW,SAAS,QAAQ,QAAQ,YAAY;AAAA,MACjE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,GAAGL,EAAY,GAAI9C,CAAgB;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUyC,EAAW;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYD,EAAa;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAa;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAa;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC,UAAU,SAAS,YAAY,YAAY,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAK9D,OAAO,CAAC;AAAA,QACN,OAAO,CAACV,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACA,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAACA,CAAK;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAACA,CAAK;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACA,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACA,CAAK;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAACA,CAAK;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,WAAW,aAAa,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/C,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,QAAQhC,IAAWE,CAAgB;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,OAAO,CAAC;AAAA,QACN,OAAO0C,EAA8B;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,OAAO,eAAe,OAAO,aAAa;AAAA,MACzD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,gBAAgB,QAAQ;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,KAAK,QAAQ,WAAW,QAAQ1C,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAMkD,EAAe;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQA,EAAe;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQpD,IAAWE,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACW,EAAK;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAK,CAAC,QAAQ;AAAA,UACZ,MAAM,CAAC,QAAQb,IAAWE,CAAgB;AAAA,QACpD,GAAWA,CAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa6C,EAA6B;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAA6B;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAClC,EAAK;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAK,CAAC,QAAQ;AAAA,UACZ,MAAM,CAACb,IAAWE,CAAgB;AAAA,QAC5C,GAAWA,CAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa6C,EAA6B;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAA6B;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,OAAO,OAAO,SAAS,aAAa,WAAW;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,QAAQ,OAAO,OAAO,MAAM7C,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,QAAQ,OAAO,OAAO,MAAMA,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC2B,CAAG;AAAA,MACjB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACA,CAAG;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACA,CAAG;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,SAAS,CAAC,UAAU,GAAGsB,EAAQ,CAAE;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,SAAS,OAAO,UAAU,SAAS;AAAA,MAC7D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,OAAO,UAAU,SAAS;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,UAAU,GAAGA,EAAQ,GAAI,UAAU;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAAC,SAAS,OAAO,UAAU,YAAY,SAAS;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,QAAQ,SAAS,OAAO,UAAU,WAAW,UAAU;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,GAAGA,EAAQ,GAAI,UAAU;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,SAAS,OAAO,UAAU,YAAY,SAAS;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQ,SAAS,OAAO,UAAU,SAAS;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,GAAG,CAAC;AAAA,QACF,GAAG,CAAChB,CAAO;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAACF,CAAM;AAAA,MAClB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACO,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMrC,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAOtC,GAAkBgB,CAAO;AAAA,MACvF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,KAAK;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,QAAQ,QAAQ,OAAO,OAAO,OAAO,SAAS;AAAA,UACjF,QAAQ,CAACf,EAAY;AAAA,QAC/B,GAAWA,EAAY;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAACD,GAAkBgB,GAAS,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACvF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACrF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACrF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAChB,GAAkBgB,GAAS,QAAQ,OAAO,OAAO,KAAK;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQf,IAAcP,EAAiB;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,eAAe,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxD,cAAc,CAAC,UAAU,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,eAAe,CAAC;AAAA,QACd,MAAM,CAAC,QAAQ,cAAc,SAAS,UAAU,UAAU,YAAY,QAAQ,aAAa,SAASG,EAAiB;AAAA,MAC7H,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,MAAM,CAACc,EAAK;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,eAAe,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKzB,oBAAoB,CAAC,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnC,cAAc,CAAC,eAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7C,eAAe,CAAC,qBAAqB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnD,gBAAgB,CAAC,sBAAsB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,UAAU,CAAC;AAAA,QACT,UAAU,CAAC,WAAW,SAAS,UAAU,QAAQ,SAAS,UAAUX,CAAgB;AAAA,MAC5F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQP,IAAUI,EAAiB;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,SAAS,QAAQ,UAAU,WAAW,SAASL,IAAUQ,CAAgB;AAAA,MACnG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQA,CAAgB;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,QAAQ,QAAQ,WAAWA,CAAgB;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,MAAM,CAAC,UAAU,SAAS;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,qBAAqB,CAAC;AAAA,QACpB,aAAa,CAACe,CAAM;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACiB,CAAO;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,QAAQ,UAAU,SAAS,WAAW,SAAS,KAAK;AAAA,MACnE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAACjB,CAAM;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAACiB,CAAO;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,aAAa,YAAY,gBAAgB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAK3E,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAAC,GAAGe,EAAa,GAAI,MAAM;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,6BAA6B,CAAC;AAAA,QAC5B,YAAY,CAAC,QAAQ,aAAavD,IAAUE,EAAiB;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAAC,QAAQF,IAAUQ,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAACe,CAAM;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,aAAa,aAAa,cAAc,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxE,iBAAiB,CAAC,YAAY,iBAAiB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ4B,EAAuB;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,OAAO,CAAC,YAAY,OAAO,UAAU,UAAU,YAAY,eAAe,OAAO,SAAS3C,CAAgB;AAAA,MAClH,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,UAAU,UAAU,OAAO,YAAY,YAAY,cAAc;AAAA,MACtF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,UAAU,SAAS,OAAO,MAAM;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQA,CAAgB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,iBAAiB,CAAC;AAAA,QAChB,IAAI,CAAC,SAAS,SAAS,QAAQ;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,UAAU,WAAW,WAAW,MAAM;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,cAAc,CAAC;AAAA,QACb,cAAc,CAACgC,CAAO;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,UAAU,WAAW,SAAS;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI,CAAC,GAAGc,EAAY,GAAIzC,EAAmB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,IAAI,CAAC,aAAa;AAAA,UAChB,QAAQ,CAAC,IAAI,KAAK,KAAK,SAAS,OAAO;AAAA,QACjD,CAAS;AAAA,MACT,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,IAAI,CAAC,QAAQ,SAAS,WAAWF,EAAe;AAAA,MACxD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAAC,QAAQ;AAAA,UACX,eAAe,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAAA,QACpE,GAAWI,EAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAACQ,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,MAAM,CAACc,CAA0B;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,KAAK,CAACA,CAA0B;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,IAAI,CAACA,CAA0B;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,MAAM,CAACD,CAAkB;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,KAAK,CAACA,CAAkB;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI,CAACA,CAAkB;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,SAAS,CAAC;AAAA,QACR,SAAS,CAACR,CAAY;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACE,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACU,CAAO;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC,GAAGe,EAAa,GAAI,QAAQ;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACzB,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,YAAY,CAAC;AAAA,QACX,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACU,CAAO;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQe,EAAa;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC5B,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAACA,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,IAAI,GAAG4B,EAAa,CAAE;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACvD,IAAUQ,CAAgB;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,SAAS,CAACR,IAAUE,EAAiB;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAACqB,CAAM;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,MAAM6B,EAA8B;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,cAAc,CAAC;AAAA,QACb,MAAM,CAAC7B,CAAM;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAACiB,CAAO;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,eAAe,CAACxC,IAAUE,EAAiB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,eAAe,CAACqB,CAAM;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAI,SAAS,QAAQd,IAAcQ,EAAiB;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAACE,EAAK;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACqB,CAAO;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,GAAGgB,EAAa,GAAI,gBAAgB,aAAa;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAa;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAI,MAAM;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC/B,CAAI;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACC,CAAU;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACK,CAAQ;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,IAAI,QAAQtB,IAAcD,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACwB,CAAS;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACC,CAAS;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACC,CAAM;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACQ,CAAQ;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACE,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAAC,IAAI,MAAM;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAACnB,CAAI;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACC,CAAU;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACK,CAAQ;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,sBAAsB,CAAC;AAAA,QACrB,sBAAsB,CAACC,CAAS;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACC,CAAS;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAACC,CAAM;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACM,CAAO;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACE,CAAQ;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACE,CAAK;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,YAAY,UAAU;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACf,CAAa;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACA,CAAa;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACA,CAAa;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,OAAO,CAAC,QAAQ,OAAO;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,OAAO,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,OAAO,IAAI,UAAU,WAAW,UAAU,aAAarB,CAAgB;AAAA,MACpG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUoD,GAAqB;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,UAAU,MAAM,OAAO,UAAUpD,CAAgB;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAOoD,GAAqB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS,UAAUpD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,IAAI,OAAO,MAAM;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACmC,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACrC,IAAWE,CAAgB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAACuC,CAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAACA,CAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACF,CAAI;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACA,CAAI;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,QAAQ,CAAC,UAAU,OAAO,aAAa,SAAS,gBAAgB,UAAU,eAAe,QAAQ,YAAYrC,CAAgB;AAAA,MACrI,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQe,CAAM;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,MAAM;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,WAAW,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,aAAa,iBAAiB,SAAS,QAAQ,WAAW,QAAQ,YAAY,cAAc,cAAc,cAAc,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,eAAe,eAAe,WAAW,YAAYf,CAAgB;AAAA,MACrc,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAACe,CAAM;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,QAAQ,MAAM;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,QAAQ,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY4B,EAAuB;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAuB;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,SAAS,OAAO,UAAU,YAAY;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,UAAU,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,KAAK,KAAK,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,aAAa,WAAW;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,QAAQ,cAAc;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,QAAQ,OAAO;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,MAAM,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/B,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,QAAQ,OAAO,MAAM;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,QAAQ,UAAU,YAAY,aAAa3C,CAAgB;AAAA,MACnF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,MAAM,CAAC;AAAA,QACL,MAAM,CAACe,GAAQ,MAAM;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACvB,IAAUE,IAAmBG,EAAiB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACkB,GAAQ,MAAM;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,IAAI,CAAC,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAAC,QAAQ,MAAM;AAAA,MAC9C,CAAO;AAAA,IACP;AAAA,IACI,wBAAwB;AAAA,MACtB,UAAU,CAAC,cAAc,YAAY;AAAA,MACrC,YAAY,CAAC,gBAAgB,cAAc;AAAA,MAC3C,OAAO,CAAC,WAAW,WAAW,SAAS,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,MAC9E,WAAW,CAAC,SAAS,MAAM;AAAA,MAC3B,WAAW,CAAC,OAAO,QAAQ;AAAA,MAC3B,MAAM,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAChC,KAAK,CAAC,SAAS,OAAO;AAAA,MACtB,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,MAAM,CAAC,KAAK,GAAG;AAAA,MACf,aAAa,CAAC,SAAS;AAAA,MACvB,cAAc,CAAC,eAAe,oBAAoB,cAAc,eAAe,cAAc;AAAA,MAC7F,eAAe,CAAC,YAAY;AAAA,MAC5B,oBAAoB,CAAC,YAAY;AAAA,MACjC,cAAc,CAAC,YAAY;AAAA,MAC3B,eAAe,CAAC,YAAY;AAAA,MAC5B,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc,CAAC,WAAW,UAAU;AAAA,MACpC,SAAS,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MACtM,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,kBAAkB,CAAC,oBAAoB,kBAAkB;AAAA,MACzD,YAAY,CAAC,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MAC/F,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,gBAAgB,CAAC,kBAAkB,kBAAkB,kBAAkB,kBAAkB,kBAAkB,gBAAgB;AAAA,MAC3H,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,OAAO,CAAC,WAAW,WAAW,UAAU;AAAA,MACxC,WAAW,CAAC,OAAO;AAAA,MACnB,WAAW,CAAC,OAAO;AAAA,MACnB,YAAY,CAAC,OAAO;AAAA,IAC1B;AAAA,IACI,gCAAgC;AAAA,MAC9B,aAAa,CAAC,SAAS;AAAA,IAC7B;AAAA,EACA;AACA,GAiDMsC,KAAuB,gBAAAlF,GAAoB2C,EAAgB;ACp/E1D,SAASwC,KAAMC,GAA8B;AAClD,SAAOF,GAAQ/K,GAAKiL,CAAM,CAAC;AAC7B;AC+CO,MAAMC,KAAaC,EAAM;AAAA,EAC9B,CACE;AAAA,IACE,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAhL;AAAA,IACA,GAAGiL;AAAA,EAAA,GAELC,MAGE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,SAAAF;AAAA,MACA,WAAWR;AAAA,QACT;AAAA,QACAQ,KAAW;AAAA,QACXhL;AAAA,MAAA;AAAA,MAEF,OAAO,EAAE,OAAO,QAAA;AAAA,MACf,GAAGiL;AAAA,MAGJ,UAAA;AAAA,QAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,6CACZ,UAAAN,GACH;AAAA,QAGA,gBAAAK,EAAC,OAAA,EAAI,WAAU,sCAEb,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,YAAY,4BAAA;AAAA,cAEpB,UAAAR;AAAA,YAAA;AAAA,UAAA;AAAA,UAIH,gBAAAQ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,YAAY,4BAAA;AAAA,cAEpB,UAAAP;AAAA,YAAA;AAAA,UAAA;AAAA,UAIFE,KACC,gBAAAK;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS,CAACC,MAAM;AACd,gBAAAA,EAAE,gBAAA,GACFN,EAAO,QAAA;AAAA,cACT;AAAA,cACA,WAAU;AAAA,cACV,OAAO,EAAE,YAAY,4BAAA;AAAA,cAEpB,UAAAA,EAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QACV,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAL,GAAW,cAAc;AClFzB,MAAMY,KAAeX,EAAM;AAAA,EACzB,CACE;AAAA,IACE,SAAAY,IAAU;AAAA,IACV,OAAAX;AAAA,IACA,aAAAC;AAAA,IACA,MAAAC;AAAA,IACA,WAAA9K;AAAA,IACA,GAAGiL;AAAA,EAAA,GAELC,MACG;AAoBH,UAAMM,IAlBgB;AAAA,MACpB,SAAS;AAAA,QACP,WAAW;AAAA,QACX,MAAM;AAAA,QACN,MAAM,gBAAAJ,EAACK,IAAA,EAAc,MAAM,IAAI,WAAU,iBAAA,CAAiB;AAAA,MAAA;AAAA,MAE5D,aAAa;AAAA,QACX,WAAW;AAAA,QACX,MAAM;AAAA,QACN,MAAM,gBAAAL,EAACM,IAAA,EAAK,MAAM,IAAI,WAAU,iBAAA,CAAiB;AAAA,MAAA;AAAA,MAEnD,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,MAAM;AAAA,QACN,MAAM,gBAAAN,EAACM,IAAA,EAAK,MAAM,IAAI,WAAU,iBAAA,CAAiB;AAAA,MAAA;AAAA,IACnD,EAGmCH,CAAO,GACtCI,IAAcb,KAAQU,EAAe;AAE3C,WACE,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,WAAWV;AAAA,UACT;AAAA,UACAgB,EAAe;AAAA,UACfA,EAAe;AAAA,UACfxL;AAAA,QAAA;AAAA,QAEF,MAAK;AAAA,QACL,aAAU;AAAA,QACT,GAAGiL;AAAA,QAGJ,UAAA;AAAA,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAAO,GAAY;AAAA,UAG5C,gBAAAR,EAAC,OAAA,EAAI,WAAU,sCAEb,UAAA;AAAA,YAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,wCACZ,UAAAR,GACH;AAAA,YAGA,gBAAAQ,EAAC,OAAA,EAAI,WAAU,sCACZ,UAAAP,EAAA,CACH;AAAA,UAAA,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAS,GAAa,cAAc;AC9F3B,MAAMM,KAAgB,CAAC5J,MAAQ,OAAOA,KAAU,YAAY,GAAGA,CAAK,KAAKA,MAAU,IAAI,MAAMA,GAChF6J,KAAKrM,IACLsM,KAAM,CAACC,GAAMpM,MAAS,CAACsL,MAAQ;AACpC,MAAIe;AACJ,MAAqDrM,GAAO,YAAa,KAAM,QAAOkM,GAAGE,GAAoDd,GAAM,OAAqDA,GAAM,SAAS;AACvN,QAAM,EAAE,UAAAgB,GAAU,iBAAAC,EAAe,IAAKvM,GAChCwM,IAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAI,CAACV,MAAU;AAC9D,UAAMa,IAA4DnB,IAAMM,CAAO,GACzEc,IAAuFH,IAAgBX,CAAO;AACpH,QAAIa,MAAgB,KAAM,QAAO;AACjC,UAAME,IAAaV,GAAcQ,CAAW,KAAKR,GAAcS,CAAkB;AACjF,WAAOJ,EAASV,CAAO,EAAEe,CAAU;AAAA,EACvC,CAAC,GACKC,IAAwBtB,KAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAACuB,GAAKC,MAAQ;AAC9E,QAAI,CAAChL,GAAKO,CAAK,IAAIyK;AACnB,WAAIzK,MAAU,WAGdwK,EAAI/K,CAAG,IAAIO,IACJwK;AAAA,EACX,GAAG,CAAA,CAAE,GACCE,IAA+B/M,KAAW,SAAsCqM,IAA2BrM,EAAO,sBAAsB,QAAQqM,MAA6B,SAAvG,SAAyHA,EAAyB,OAAO,CAACQ,GAAKC,MAAQ;AAC/O,QAAI,EAAE,OAAOE,GAAS,WAAWC,GAAa,GAAGC,EAAsB,IAAKJ;AAC5E,WAAO,OAAO,QAAQI,CAAsB,EAAE,MAAM,CAACJ,MAAQ;AACzD,UAAI,CAAChL,GAAKO,CAAK,IAAIyK;AACnB,aAAO,MAAM,QAAQzK,CAAK,IAAIA,EAAM,SAAS;AAAA,QACzC,GAAGkK;AAAA,QACH,GAAGK;AAAA,MACvB,EAAkB9K,CAAG,CAAC,IAAK;AAAA,QACP,GAAGyK;AAAA,QACH,GAAGK;AAAA,MACvB,EAAmB9K,CAAG,MAAMO;AAAA,IAChB,CAAC,IAAI;AAAA,MACD,GAAGwK;AAAA,MACHG;AAAA,MACAC;AAAA,IAChB,IAAgBJ;AAAA,EACR,GAAG,CAAA,CAAE;AACL,SAAOX,GAAGE,GAAMI,GAAsBO,GAA4EzB,GAAM,OAAqDA,GAAM,SAAS;AAChM,GCjDE6B,KAAiBhB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,OACE;AAAA,QACF,OACE;AAAA,MAAA;AAAA,MAEJ,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,MAET,UAAU;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,kBAAkB;AAAA,MAChB;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ,GAUMiB,KAASpC,EAAM;AAAA,EACnB,CACE;AAAA,IACE,WAAA3K;AAAA,IACA,SAAAuL;AAAA,IACA,MAAAyB;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGpC;AAAA,EAAA,GAELC,MACG;AACH,UAAMoC,IAAOJ,IAAUK,KAAO;AAG9B,WAAIL,IAEA,gBAAA9B;AAAA,MAACkC;AAAA,MAAA;AAAA,QACC,WAAW9C,EAAGsC,GAAe,EAAE,SAAAvB,GAAS,MAAAyB,GAAM,UAAAC,GAAU,WAAAjN,EAAA,CAAW,CAAC;AAAA,QACpE,KAAAkL;AAAA,QACC,GAAGD;AAAA,QAEH,UAAAoC;AAAA,MAAA;AAAA,IAAA,IAML,gBAAAlC;AAAA,MAACmC;AAAA,MAAA;AAAA,QACC,WAAW9C,EAAGsC,GAAe,EAAE,SAAAvB,GAAS,MAAAyB,GAAM,UAAAC,GAAU,WAAAjN,EAAA,CAAW,CAAC;AAAA,QACpE,KAAAkL;AAAA,QACC,GAAGD;AAAA,QAEH,UAAA;AAAA,UAAAkC,KAAY,CAACF,KACZ,gBAAA7B,EAAC,QAAA,EAAK,WAAU,wBAAwB,UAAA+B,GAAS;AAAA,UAElDF,KAAWE,KAAYE;AAAA,UACvBD,KAAa,CAACH,uBACZ,QAAA,EAAK,WAAU,wBAAwB,UAAAG,EAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAI1D;AACF;AAEAL,GAAO,cAAc;AC1HrB,MAAMS,KAAc;AAAA,EAClB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AACjB,GAmCMC,KAAa9C,EAAM;AAAA,EACvB,CACE;AAAA,IACE,MAAAqC,IAAO;AAAA,IACP,MAAAU,IAAO;AAAA,IACP,UAAAC,IAAW;AAAA,IACX,WAAA3N;AAAA,IACA,KAAA4N,IAAM;AAAA,IACN,GAAG3C;AAAA,EAAA,GAELC,MACG;AAEH,UAAM2C,IAAa,MACbF,KAAYX,MAAS,UAChBQ,GAAY,gBAGjBR,MAAS,WAAWU,MAAS,SACxBF,GAAY,YAGjBR,MAAS,WAAWU,MAAS,UACxBF,GAAY,aAGjBR,MAAS,WAAWU,MAAS,SACxBF,GAAY,YAGjBR,MAAS,WAAWU,MAAS,UACxBF,GAAY,aAIdA,GAAY,WAIfM,IAAa;AAAA,MACjB,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAA;AAAA,MAC7B,OAAO,EAAE,OAAO,IAAI,QAAQ,GAAA;AAAA,IAAG,GAG3B,EAAE,OAAAC,GAAO,QAAAC,MAAWF,EAAWd,CAAI;AAEzC,WACE,gBAAA5B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAF;AAAA,QACA,KAAK2C,EAAA;AAAA,QACL,KAAAD;AAAA,QACA,OAAAG;AAAA,QACA,QAAAC;AAAA,QACA,WAAWxD,EAAG,gBAAgBxK,CAAS;AAAA,QACtC,GAAGiL;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AAEAwC,GAAW,cAAc;ACxClB,MAAMQ,KAAYtD,EAAM;AAAA,EAC7B,CACE;AAAA,IACE,SAAAuD;AAAA,IACA,KAAArF,IAAM;AAAA,IACN,eAAAsF;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,UAAAf;AAAA,IACA,WAAArN;AAAA,IACA,OAAAqO;AAAA,IACA,GAAGpD;AAAA,EAAA,GAELC,MACG;AAEH,UAAMoD,IAAc,MACd,OAAOzF,KAAQ,WACV,OAAOA,CAAG,KAEZ,IAIH0F,IAAoB,MAAM;AAC9B,YAAMC,IAAU,CAAA;AAGhB,aAAAA,EAAQ,KAAK,aAAaJ,CAAa,EAAE,GAGrCD,KACFK,EAAQ,KAAK,gBAAgBL,CAAa,EAAE,GAI9CK,EAAQ,KAAK,gBAAgBN,CAAO,EAAE,GAE/BM,EAAQ,KAAK,GAAG;AAAA,IACzB,GAGMC,IAAc,OAAO5F,KAAQ,WAC/B,EAAE,KAAAA,GAAK,GAAGwF,MACVA;AAEJ,WACE,gBAAAjD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAF;AAAA,QACA,WAAWV;AAAA,UACT;AAAA,UACA8D,EAAA;AAAA,UACAC,EAAA;AAAA,UACAvO;AAAA,QAAA;AAAA,QAEF,OAAOyO;AAAA,QACN,GAAGxD;AAAA,QAEH,UAAAN,EAAM,SAAS,IAAI0C,GAAU,CAACqB,MACzB/D,EAAM,eAAe+D,CAAK,IAErB/D,EAAM,aAAa+D,GAAO;AAAA,UAC/B,GAAGA,EAAM;AAAA,UACT,WAAWlE,EAAG,UAAUkE,EAAM,MAAM,SAAS;AAAA,QAAA,CACvC,IAEHA,CACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEAT,GAAU,cAAc;ACtFjB,MAAMU,KAAchE,EAAM;AAAA,EAC/B,CACE;AAAA,IACE,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,MAAAC;AAAA,IACA,gBAAA8D,IAAiB;AAAA,IACjB,SAAA5D;AAAA,IACA,WAAAhL;AAAA,IACA,GAAGiL;AAAA,EAAA,GAELC,MAGE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,SAAAF;AAAA,MACA,WAAWR;AAAA,QACT;AAAA,QACAQ,KAAW;AAAA,QACXhL;AAAA,MAAA;AAAA,MAED,GAAGiL;AAAA,MAGJ,UAAA;AAAA,QAAA,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,iBAAiBwD;AAAA,YAAA;AAAA,YAGlB,UAAA9D;AAAA,UAAA;AAAA,QAAA;AAAA,QAIH,gBAAAK,EAAC,SAAI,WAAU,gDAA+C,OAAO,EAAE,OAAO,WAE5E,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,YAAY,4BAAA;AAAA,cAEpB,UAAAR;AAAA,YAAA;AAAA,UAAA;AAAA,UAIH,gBAAAQ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,YAAY,4BAAA;AAAA,cAEpB,UAAAP;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA8D,GAAY,cAAc;AC1GM,SAASE,EAAaC,GAAMC,GAAaC,GAAQ;AAC7E,WAASC,EAAKC,GAAMC,GAAK;AAWrB,QAVKD,EAAK,QACN,OAAO,eAAeA,GAAM,QAAQ;AAAA,MAChC,OAAO;AAAA,QACH,KAAAC;AAAA,QACA,QAAQC;AAAA,QACR,QAAQ,oBAAI,IAAG;AAAA,MACnC;AAAA,MACgB,YAAY;AAAA,IAC5B,CAAa,GAEDF,EAAK,KAAK,OAAO,IAAIJ,CAAI;AACzB;AAEJ,IAAAI,EAAK,KAAK,OAAO,IAAIJ,CAAI,GACzBC,EAAYG,GAAMC,CAAG;AAErB,UAAME,IAAQD,EAAE,WACVE,IAAO,OAAO,KAAKD,CAAK;AAC9B,aAASzK,IAAI,GAAGA,IAAI0K,EAAK,QAAQ1K,KAAK;AAClC,YAAMQ,IAAIkK,EAAK1K,CAAC;AAChB,MAAMQ,KAAK8J,MACPA,EAAK9J,CAAC,IAAIiK,EAAMjK,CAAC,EAAE,KAAK8J,CAAI;AAAA,IAEpC;AAAA,EACJ;AAEA,QAAMK,IAASP,GAAQ,UAAU;AAAA,EACjC,MAAMQ,UAAmBD,EAAO;AAAA,EACpC;AACI,SAAO,eAAeC,GAAY,QAAQ,EAAE,OAAOV,GAAM;AACzD,WAASM,EAAED,GAAK;AACZ,QAAIM;AACJ,UAAMP,IAAOF,GAAQ,SAAS,IAAIQ,EAAU,IAAK;AACjD,IAAAP,EAAKC,GAAMC,CAAG,IACbM,IAAKP,EAAK,MAAM,aAAaO,EAAG,WAAW;AAC5C,eAAWC,KAAMR,EAAK,KAAK;AACvB,MAAAQ,EAAE;AAEN,WAAOR;AAAA,EACX;AACA,gBAAO,eAAeE,GAAG,QAAQ,EAAE,OAAOH,GAAM,GAChD,OAAO,eAAeG,GAAG,OAAO,aAAa;AAAA,IACzC,OAAO,CAACF,MACAF,GAAQ,UAAUE,aAAgBF,EAAO,SAClC,KACJE,GAAM,MAAM,QAAQ,IAAIJ,CAAI;AAAA,EAE/C,CAAK,GACD,OAAO,eAAeM,GAAG,QAAQ,EAAE,OAAON,GAAM,GACzCM;AACX;AAGO,MAAMO,WAAuB,MAAM;AAAA,EACtC,cAAc;AACV,UAAM,0EAA0E;AAAA,EACpF;AACJ;AACO,MAAMC,WAAwB,MAAM;AAAA,EACvC,YAAYd,GAAM;AACd,UAAM,uDAAuDA,CAAI,EAAE,GACnE,KAAK,OAAO;AAAA,EAChB;AACJ;AACO,MAAMe,KAAe,CAAA;AACrB,SAASlQ,GAAOmQ,GAAW;AAG9B,SAAOD;AACX;ACrDO,SAASE,GAAsBX,GAAGpN,GAAO;AAC5C,SAAI,OAAOA,KAAU,WACVA,EAAM,SAAQ,IAClBA;AACX;AAcO,SAASgO,GAAQC,GAAO;AAC3B,SAAOA,KAAU;AACrB;AACO,SAASC,GAAWC,GAAQ;AAC/B,QAAMC,IAAQD,EAAO,WAAW,GAAG,IAAI,IAAI,GACrCE,IAAMF,EAAO,SAAS,GAAG,IAAIA,EAAO,SAAS,IAAIA,EAAO;AAC9D,SAAOA,EAAO,MAAMC,GAAOC,CAAG;AAClC;AAgBA,MAAMC,KAAa,OAAO,YAAY;AAC/B,SAASC,EAAWC,GAAQ/O,GAAKgP,GAAQ;AAC5C,MAAIzO;AACJ,SAAO,eAAewO,GAAQ/O,GAAK;AAAA,IAC/B,MAAM;AACF,UAAIO,MAAUsO;AAId,eAAItO,MAAU,WACVA,IAAQsO,IACRtO,IAAQyO,EAAM,IAEXzO;AAAA,IACX;AAAA,IACA,IAAI0O,GAAG;AACH,aAAO,eAAeF,GAAQ/O,GAAK;AAAA,QAC/B,OAAOiP;AAAA;AAAA,MAEvB,CAAa;AAAA,IAEL;AAAA,IACA,cAAc;AAAA,EACtB,CAAK;AACL;AAYO,SAASC,MAAaC,GAAM;AAC/B,QAAMC,IAAoB,CAAA;AAC1B,aAAW1B,KAAOyB,GAAM;AACpB,UAAME,IAAc,OAAO,0BAA0B3B,CAAG;AACxD,WAAO,OAAO0B,GAAmBC,CAAW;AAAA,EAChD;AACA,SAAO,OAAO,iBAAiB,CAAA,GAAID,CAAiB;AACxD;AA+BO,SAASE,GAAQd,GAAO;AAC3B,SAAOA,EACF,YAAW,EACX,KAAI,EACJ,QAAQ,aAAa,EAAE,EACvB,QAAQ,YAAY,GAAG,EACvB,QAAQ,YAAY,EAAE;AAC/B;AACO,MAAMe,KAAqB,uBAAuB,QAAQ,MAAM,oBAAoB,IAAIC,MAAU;AAAE;AACpG,SAASC,GAASC,GAAM;AAC3B,SAAO,OAAOA,KAAS,YAAYA,MAAS,QAAQ,CAAC,MAAM,QAAQA,CAAI;AAC3E;AAeO,SAASC,GAAcC,GAAG;AAC7B,MAAIH,GAASG,CAAC,MAAM;AAChB,WAAO;AAEX,QAAMC,IAAOD,EAAE;AAGf,MAFIC,MAAS,UAET,OAAOA,KAAS;AAChB,WAAO;AAEX,QAAMC,IAAOD,EAAK;AAIlB,SAHIJ,EAAAA,GAASK,CAAI,MAAM,MAGnB,OAAO,UAAU,eAAe,KAAKA,GAAM,eAAe,MAAM;AAIxE;AACO,SAASC,GAAaH,GAAG;AAC5B,SAAID,GAAcC,CAAC,IACR,EAAE,GAAGA,EAAC,IACb,MAAM,QAAQA,CAAC,IACR,CAAC,GAAGA,CAAC,IACTA;AACX;AAyDO,SAASI,GAAYC,GAAK;AAC7B,SAAOA,EAAI,QAAQ,uBAAuB,MAAM;AACpD;AAEO,SAASC,GAAMzC,GAAMC,GAAKH,GAAQ;AACrC,QAAM4C,IAAK,IAAI1C,EAAK,KAAK,OAAOC,KAAOD,EAAK,KAAK,GAAG;AACpD,UAAI,CAACC,KAAOH,GAAQ,YAChB4C,EAAG,KAAK,SAAS1C,IACd0C;AACX;AACO,SAASC,EAAgBC,GAAS;AACrC,QAAM9C,IAAS8C;AACf,MAAI,CAAC9C;AACD,WAAO,CAAA;AACX,MAAI,OAAOA,KAAW;AAClB,WAAO,EAAE,OAAO,MAAMA,EAAM;AAChC,MAAIA,GAAQ,YAAY,QAAW;AAC/B,QAAIA,GAAQ,UAAU;AAClB,YAAM,IAAI,MAAM,kDAAkD;AACtE,IAAAA,EAAO,QAAQA,EAAO;AAAA,EAC1B;AAEA,SADA,OAAOA,EAAO,SACV,OAAOA,EAAO,SAAU,WACjB,EAAE,GAAGA,GAAQ,OAAO,MAAMA,EAAO,MAAK,IAC1CA;AACX;AA4NO,SAAS+C,GAAQC,GAAGC,IAAa,GAAG;AACvC,MAAID,EAAE,YAAY;AACd,WAAO;AACX,WAASpN,IAAIqN,GAAYrN,IAAIoN,EAAE,OAAO,QAAQpN;AAC1C,QAAIoN,EAAE,OAAOpN,CAAC,GAAG,aAAa;AAC1B,aAAO;AAGf,SAAO;AACX;AACO,SAASsN,GAAaxQ,GAAMyQ,GAAQ;AACvC,SAAOA,EAAO,IAAI,CAACC,MAAQ;AACvB,QAAI3C;AACJ,YAACA,IAAK2C,GAAK,SAAS3C,EAAG,OAAO,CAAA,IAC9B2C,EAAI,KAAK,QAAQ1Q,CAAI,GACd0Q;AAAA,EACX,CAAC;AACL;AACO,SAASC,GAAcC,GAAS;AACnC,SAAO,OAAOA,KAAY,WAAWA,IAAUA,GAAS;AAC5D;AACO,SAASC,GAAcH,GAAKI,GAAK7S,GAAQ;AAC5C,QAAM8S,IAAO,EAAE,GAAGL,GAAK,MAAMA,EAAI,QAAQ,GAAE;AAE3C,MAAI,CAACA,EAAI,SAAS;AACd,UAAME,IAAUD,GAAcD,EAAI,MAAM,KAAK,KAAK,QAAQA,CAAG,CAAC,KAC1DC,GAAcG,GAAK,QAAQJ,CAAG,CAAC,KAC/BC,GAAc1S,EAAO,cAAcyS,CAAG,CAAC,KACvCC,GAAc1S,EAAO,cAAcyS,CAAG,CAAC,KACvC;AACJ,IAAAK,EAAK,UAAUH;AAAA,EACnB;AAEA,gBAAOG,EAAK,MACZ,OAAOA,EAAK,UACPD,GAAK,eACN,OAAOC,EAAK,OAETA;AACX;AAWO,SAASC,GAAoBzC,GAAO;AACvC,SAAI,MAAM,QAAQA,CAAK,IACZ,UACP,OAAOA,KAAU,WACV,WACJ;AACX;AACO,SAAS0C,MAASC,GAAM;AAC3B,QAAM,CAACR,GAAKnC,GAAOf,CAAI,IAAI0D;AAC3B,SAAI,OAAOR,KAAQ,WACR;AAAA,IACH,SAASA;AAAA,IACT,MAAM;AAAA,IACN,OAAAnC;AAAA,IACA,MAAAf;AAAA,EACZ,IAEW,EAAE,GAAGkD,EAAG;AACnB;AC5iBA,MAAMrD,KAAc,CAACG,GAAMC,MAAQ;AAC/B,EAAAD,EAAK,OAAO,aACZ,OAAO,eAAeA,GAAM,QAAQ;AAAA,IAChC,OAAOA,EAAK;AAAA,IACZ,YAAY;AAAA,EACpB,CAAK,GACD,OAAO,eAAeA,GAAM,UAAU;AAAA,IAClC,OAAOC;AAAA,IACP,YAAY;AAAA,EACpB,CAAK,GACDD,EAAK,UAAU,KAAK,UAAUC,GAAK0D,IAA4B,CAAC,GAChE,OAAO,eAAe3D,GAAM,YAAY;AAAA,IACpC,OAAO,MAAMA,EAAK;AAAA,IAClB,YAAY;AAAA,EACpB,CAAK;AACL,GACa4D,KAAYjE,EAAa,aAAaE,EAAW,GACjDgE,KAAgBlE,EAAa,aAAaE,IAAa,EAAE,QAAQ,OAAO;AAC9E,SAASiE,GAAaC,GAAOC,IAAS,CAACP,MAAUA,EAAM,SAAS;AACnE,QAAMQ,IAAc,CAAA,GACdC,IAAa,CAAA;AACnB,aAAWC,KAAOJ,EAAM;AACpB,IAAII,EAAI,KAAK,SAAS,KAClBF,EAAYE,EAAI,KAAK,CAAC,CAAC,IAAIF,EAAYE,EAAI,KAAK,CAAC,CAAC,KAAK,CAAA,GACvDF,EAAYE,EAAI,KAAK,CAAC,CAAC,EAAE,KAAKH,EAAOG,CAAG,CAAC,KAGzCD,EAAW,KAAKF,EAAOG,CAAG,CAAC;AAGnC,SAAO,EAAE,YAAAD,GAAY,aAAAD,EAAW;AACpC;AACO,SAASG,GAAYL,GAAOC,IAAS,CAACP,MAAUA,EAAM,SAAS;AAClE,QAAMQ,IAAc,EAAE,SAAS,GAAE,GAC3BI,IAAe,CAACN,MAAU;AAC5B,eAAWN,KAASM,EAAM;AACtB,UAAIN,EAAM,SAAS,mBAAmBA,EAAM,OAAO;AAC/C,QAAAA,EAAM,OAAO,IAAI,CAACR,MAAWoB,EAAa,EAAE,QAAApB,EAAM,CAAE,CAAC;AAAA,eAEhDQ,EAAM,SAAS;AACpB,QAAAY,EAAa,EAAE,QAAQZ,EAAM,OAAM,CAAE;AAAA,eAEhCA,EAAM,SAAS;AACpB,QAAAY,EAAa,EAAE,QAAQZ,EAAM,OAAM,CAAE;AAAA,eAEhCA,EAAM,KAAK,WAAW;AAC3B,QAAAQ,EAAY,QAAQ,KAAKD,EAAOP,CAAK,CAAC;AAAA,WAErC;AACD,YAAIa,IAAOL,GACPvO,IAAI;AACR,eAAOA,IAAI+N,EAAM,KAAK,UAAQ;AAC1B,gBAAMc,IAAKd,EAAM,KAAK/N,CAAC;AAEvB,UADiBA,MAAM+N,EAAM,KAAK,SAAS,KAKvCa,EAAKC,CAAE,IAAID,EAAKC,CAAE,KAAK,EAAE,SAAS,GAAE,GACpCD,EAAKC,CAAE,EAAE,QAAQ,KAAKP,EAAOP,CAAK,CAAC,KAJnCa,EAAKC,CAAE,IAAID,EAAKC,CAAE,KAAK,EAAE,SAAS,GAAE,GAMxCD,IAAOA,EAAKC,CAAE,GACd7O;AAAA,QACJ;AAAA,MACJ;AAAA,EAER;AACA,SAAA2O,EAAaN,CAAK,GACXE;AACX;ACpEO,MAAMO,KAAS,CAACC,MAAS,CAACC,GAAQ5R,GAAO6R,GAAM/B,MAAY;AAC9D,QAAMU,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,OAAO,GAAK,CAAE,IAAI,EAAE,OAAO,GAAK,GACnEvP,IAASsP,EAAO,KAAK,IAAI,EAAE,OAAA5R,GAAO,QAAQ,GAAE,GAAIwQ,CAAG;AACzD,MAAIlO,aAAkB;AAClB,UAAM,IAAIwP,GAAmB;AAEjC,MAAIxP,EAAO,OAAO,QAAQ;AACtB,UAAM+G,IAAI,KAAKyG,GAAS,OAAO6B,GAAMrP,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC,CAAC;AAC5GC,UAAAA,GAAuB5I,GAAGyG,GAAS,MAAM,GACnCzG;AAAA,EACV;AACA,SAAO/G,EAAO;AAClB,GAEa4P,KAAc,CAACP,MAAS,OAAOC,GAAQ5R,GAAO6R,GAAM7E,MAAW;AACxE,QAAMwD,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,OAAO,GAAI,CAAE,IAAI,EAAE,OAAO,GAAI;AACvE,MAAIvP,IAASsP,EAAO,KAAK,IAAI,EAAE,OAAA5R,GAAO,QAAQ,GAAE,GAAIwQ,CAAG;AAGvD,MAFIlO,aAAkB,YAClBA,IAAS,MAAMA,IACfA,EAAO,OAAO,QAAQ;AACtB,UAAM+G,IAAI,KAAK2D,GAAQ,OAAO2E,GAAMrP,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC,CAAC;AAC3GC,UAAAA,GAAuB5I,GAAG2D,GAAQ,MAAM,GAClC3D;AAAA,EACV;AACA,SAAO/G,EAAO;AAClB,GAEa6P,KAAa,CAACR,MAAS,CAACC,GAAQ5R,GAAO6R,MAAS;AACzD,QAAMrB,IAAMqB,IAAO,EAAE,GAAGA,GAAM,OAAO,GAAK,IAAK,EAAE,OAAO,GAAK,GACvDvP,IAASsP,EAAO,KAAK,IAAI,EAAE,OAAA5R,GAAO,QAAQ,GAAE,GAAIwQ,CAAG;AACzD,MAAIlO,aAAkB;AAClB,UAAM,IAAIwP,GAAmB;AAEjC,SAAOxP,EAAO,OAAO,SACf;AAAA,IACE,SAAS;AAAA,IACT,OAAO,KAAKqP,KAAQS,IAAkB9P,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC,CAAC;AAAA,EACzH,IACU,EAAE,SAAS,IAAM,MAAM1P,EAAO,MAAK;AAC7C,GACa+P,KAA2B,gBAAAF,GAAWG,EAAoB,GAC1DC,KAAkB,CAACZ,MAAS,OAAOC,GAAQ5R,GAAO6R,MAAS;AACpE,QAAMrB,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,OAAO,GAAI,CAAE,IAAI,EAAE,OAAO,GAAI;AACvE,MAAIvP,IAASsP,EAAO,KAAK,IAAI,EAAE,OAAA5R,GAAO,QAAQ,GAAE,GAAIwQ,CAAG;AACvD,SAAIlO,aAAkB,YAClBA,IAAS,MAAMA,IACZA,EAAO,OAAO,SACf;AAAA,IACE,SAAS;AAAA,IACT,OAAO,IAAIqP,EAAKrP,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC,CAAC;AAAA,EACnG,IACU,EAAE,SAAS,IAAM,MAAM1P,EAAO,MAAK;AAC7C,GACakQ,KAAgC,gBAAAD,GAAgBD,EAAoB,GACpEG,KAAU,CAACd,MAAS,CAACC,GAAQ5R,GAAO6R,MAAS;AACtD,QAAMrB,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,WAAW,WAAU,CAAE,IAAI,EAAE,WAAW,WAAU;AAC3F,SAAOH,GAAOC,CAAI,EAAEC,GAAQ5R,GAAOwQ,CAAG;AAC1C,GAEakC,KAAU,CAACf,MAAS,CAACC,GAAQ5R,GAAO6R,MACtCH,GAAOC,CAAI,EAAEC,GAAQ5R,GAAO6R,CAAI,GAG9Bc,KAAe,CAAChB,MAAS,OAAOC,GAAQ5R,GAAO6R,MAAS;AACjE,QAAMrB,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,WAAW,WAAU,CAAE,IAAI,EAAE,WAAW,WAAU;AAC3F,SAAOK,GAAYP,CAAI,EAAEC,GAAQ5R,GAAOwQ,CAAG;AAC/C,GAEaoC,KAAe,CAACjB,MAAS,OAAOC,GAAQ5R,GAAO6R,MACjDK,GAAYP,CAAI,EAAEC,GAAQ5R,GAAO6R,CAAI,GAGnCgB,KAAc,CAAClB,MAAS,CAACC,GAAQ5R,GAAO6R,MAAS;AAC1D,QAAMrB,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,WAAW,WAAU,CAAE,IAAI,EAAE,WAAW,WAAU;AAC3F,SAAOM,GAAWR,CAAI,EAAEC,GAAQ5R,GAAOwQ,CAAG;AAC9C,GAEasC,KAAc,CAACnB,MAAS,CAACC,GAAQ5R,GAAO6R,MAC1CM,GAAWR,CAAI,EAAEC,GAAQ5R,GAAO6R,CAAI,GAGlCkB,KAAmB,CAACpB,MAAS,OAAOC,GAAQ5R,GAAO6R,MAAS;AACrE,QAAMrB,IAAMqB,IAAO,OAAO,OAAOA,GAAM,EAAE,WAAW,WAAU,CAAE,IAAI,EAAE,WAAW,WAAU;AAC3F,SAAOU,GAAgBZ,CAAI,EAAEC,GAAQ5R,GAAOwQ,CAAG;AACnD,GAEawC,KAAmB,CAACrB,MAAS,OAAOC,GAAQ5R,GAAO6R,MACrDU,GAAgBZ,CAAI,EAAEC,GAAQ5R,GAAO6R,CAAI,GCzFvCoB,KAAO,oBACPC,KAAQ,eACRC,KAAO,yCACPC,KAAM,qBACNC,KAAQ,qBACRC,KAAS,uBAETC,KAAW,iGAIXC,KAAO,mFAIPC,KAAO,CAACC,MACZA,IAEE,IAAI,OAAO,mCAAmCA,CAAO,yDAAyD,IAD1G,0KAOFC,KAAQ,oGAUfC,KAAS;AACR,SAASC,KAAQ;AACpB,SAAO,IAAI,OAAOD,IAAQ,GAAG;AACjC;AACO,MAAME,KAAO,uHACPC,KAAO,gYAKPC,KAAS,4IACTC,KAAS,kIAETC,KAAS,+EACTC,KAAY,oBAMZC,KAAO,4BAEdC,KAAa,uNACNC,KAAqB,oBAAI,OAAO,IAAID,EAAU,GAAG;AAC9D,SAASE,GAAW3D,GAAM;AACtB,QAAM4D,IAAO;AAQb,SAPc,OAAO5D,EAAK,aAAc,WAClCA,EAAK,cAAc,KACf,GAAG4D,CAAI,KACP5D,EAAK,cAAc,IACf,GAAG4D,CAAI,cACP,GAAGA,CAAI,mBAAmB5D,EAAK,SAAS,MAChD,GAAG4D,CAAI;AAEjB;AACO,SAASC,GAAK7D,GAAM;AACvB,SAAO,IAAI,OAAO,IAAI2D,GAAW3D,CAAI,CAAC,GAAG;AAC7C;AAEO,SAAS8D,GAAS9D,GAAM;AAC3B,QAAM6D,IAAOF,GAAW,EAAE,WAAW3D,EAAK,UAAS,CAAE,GAC/C+D,IAAO,CAAC,GAAG;AACjB,EAAI/D,EAAK,SACL+D,EAAK,KAAK,EAAE,GAEZ/D,EAAK,UACL+D,EAAK,KAAK,mCAAmC;AACjD,QAAMC,IAAY,GAAGH,CAAI,MAAME,EAAK,KAAK,GAAG,CAAC;AAC7C,SAAO,IAAI,OAAO,IAAIN,EAAU,OAAOO,CAAS,IAAI;AACxD;AACO,MAAM3R,KAAS,CAAC+J,MAAW;AAC9B,QAAM6H,IAAQ7H,IAAS,YAAYA,GAAQ,WAAW,CAAC,IAAIA,GAAQ,WAAW,EAAE,MAAM;AACtF,SAAO,IAAI,OAAO,IAAI6H,CAAK,GAAG;AAClC,GAUaC,KAAY,aAEZC,KAAY,aChGZC,KAA0BC,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,MAAIM;AACJ,EAAAP,EAAK,SAASA,EAAK,OAAO,CAAA,IAC1BA,EAAK,KAAK,MAAMC,IACfM,IAAKP,EAAK,MAAM,aAAaO,EAAG,WAAW;AAChD,CAAC,GA6SYyH,KAAmCD,gBAAAA,EAAkB,sBAAsB,CAAC/H,GAAMC,MAAQ;AACnG,MAAIM;AACJ,EAAAuH,GAAU,KAAK9H,GAAMC,CAAG,IACvBM,IAAKP,EAAK,KAAK,KAAK,SAASO,EAAG,OAAO,CAAC0H,MAAY;AACjD,UAAMC,IAAMD,EAAQ;AACpB,WAAO,CAACE,GAAaD,CAAG,KAAKA,EAAI,WAAW;AAAA,EAChD,IACAlI,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMsE,IAAQtE,EAAK,KAAK,IAAI,WAAW,OAAO;AAC9C,IAAIC,EAAI,UAAUqE,MACdtE,EAAK,KAAK,IAAI,UAAUC,EAAI;AAAA,EACpC,CAAC,GACDD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,UAAMlH,IAAQkH,EAAQ;AAEtB,QADelH,EAAM,UACPd,EAAI;AACd;AACJ,UAAMmI,IAASC,GAAyBtH,CAAK;AAC7C,IAAAkH,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAAG;AAAA,MACA,MAAM;AAAA,MACN,SAASnI,EAAI;AAAA,MACb,WAAW;AAAA,MACX,OAAAc;AAAA,MACA,MAAAf;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACYqI,KAAmCP,gBAAAA,EAAkB,sBAAsB,CAAC/H,GAAMC,MAAQ;AACnG,MAAIM;AACJ,EAAAuH,GAAU,KAAK9H,GAAMC,CAAG,IACvBM,IAAKP,EAAK,KAAK,KAAK,SAASO,EAAG,OAAO,CAAC0H,MAAY;AACjD,UAAMC,IAAMD,EAAQ;AACpB,WAAO,CAACE,GAAaD,CAAG,KAAKA,EAAI,WAAW;AAAA,EAChD,IACAlI,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMsE,IAAQtE,EAAK,KAAK,IAAI,WAAW,OAAO;AAC9C,IAAIC,EAAI,UAAUqE,MACdtE,EAAK,KAAK,IAAI,UAAUC,EAAI;AAAA,EACpC,CAAC,GACDD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,UAAMlH,IAAQkH,EAAQ;AAEtB,QADelH,EAAM,UACPd,EAAI;AACd;AACJ,UAAMmI,IAASC,GAAyBtH,CAAK;AAC7C,IAAAkH,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAAG;AAAA,MACA,MAAM;AAAA,MACN,SAASnI,EAAI;AAAA,MACb,WAAW;AAAA,MACX,OAAAc;AAAA,MACA,MAAAf;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACYsI,KAAsCR,gBAAAA,EAAkB,yBAAyB,CAAC/H,GAAMC,MAAQ;AACzG,MAAIM;AACJ,EAAAuH,GAAU,KAAK9H,GAAMC,CAAG,IACvBM,IAAKP,EAAK,KAAK,KAAK,SAASO,EAAG,OAAO,CAAC0H,MAAY;AACjD,UAAMC,IAAMD,EAAQ;AACpB,WAAO,CAACE,GAAaD,CAAG,KAAKA,EAAI,WAAW;AAAA,EAChD,IACAlI,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMwI,IAAMxI,EAAK,KAAK;AACtB,IAAAwI,EAAI,UAAUvI,EAAI,QAClBuI,EAAI,UAAUvI,EAAI,QAClBuI,EAAI,SAASvI,EAAI;AAAA,EACrB,CAAC,GACDD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,UAAMlH,IAAQkH,EAAQ,OAChBQ,IAAS1H,EAAM;AACrB,QAAI0H,MAAWxI,EAAI;AACf;AACJ,UAAMmI,IAASC,GAAyBtH,CAAK,GACvC2H,IAASD,IAASxI,EAAI;AAC5B,IAAAgI,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAAG;AAAA,MACA,GAAIM,IAAS,EAAE,MAAM,WAAW,SAASzI,EAAI,WAAW,EAAE,MAAM,aAAa,SAASA,EAAI,OAAM;AAAA,MAChG,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAOgI,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACY0I,KAAsCZ,gBAAAA,EAAkB,yBAAyB,CAAC/H,GAAMC,MAAQ;AACzG,MAAIM,GAAIqI;AACR,EAAAd,GAAU,KAAK9H,GAAMC,CAAG,GACxBD,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMwI,IAAMxI,EAAK,KAAK;AACtB,IAAAwI,EAAI,SAASvI,EAAI,QACbA,EAAI,YACJuI,EAAI,aAAaA,EAAI,WAAW,oBAAI,IAAG,IACvCA,EAAI,SAAS,IAAIvI,EAAI,OAAO;AAAA,EAEpC,CAAC,GACGA,EAAI,WACHM,IAAKP,EAAK,MAAM,UAAUO,EAAG,QAAQ,CAAC0H,MAAY;AAE/C,IADAhI,EAAI,QAAQ,YAAY,GACpB,CAAAA,EAAI,QAAQ,KAAKgI,EAAQ,KAAK,KAElCA,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQhI,EAAI;AAAA,MACZ,OAAOgI,EAAQ;AAAA,MACf,GAAIhI,EAAI,UAAU,EAAE,SAASA,EAAI,QAAQ,WAAU,IAAK;MACxD,MAAAD;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC/B,CAAa;AAAA,EACL,MAEC2I,IAAK5I,EAAK,MAAM,UAAU4I,EAAG,QAAQ,MAAM;AAAA,EAAE;AACtD,CAAC,GACYC,KAA+Bd,gBAAAA,EAAkB,kBAAkB,CAAC/H,GAAMC,MAAQ;AAC3F,EAAA0I,GAAsB,KAAK3I,GAAMC,CAAG,GACpCD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAE3B,IADAhI,EAAI,QAAQ,YAAY,GACpB,CAAAA,EAAI,QAAQ,KAAKgI,EAAQ,KAAK,KAElCA,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAOA,EAAQ;AAAA,MACf,SAAShI,EAAI,QAAQ,SAAQ;AAAA,MAC7B,MAAAD;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACY6I,KAAmCf,gBAAAA,EAAkB,sBAAsB,CAAC/H,GAAMC,MAAQ;AACnG,EAAAA,EAAI,YAAYA,EAAI,UAAU8I,KAC9BJ,GAAsB,KAAK3I,GAAMC,CAAG;AACxC,CAAC,GACY+I,KAAmCjB,gBAAAA,EAAkB,sBAAsB,CAAC/H,GAAMC,MAAQ;AACnG,EAAAA,EAAI,YAAYA,EAAI,UAAUgJ,KAC9BN,GAAsB,KAAK3I,GAAMC,CAAG;AACxC,CAAC,GACYiJ,KAAkCnB,gBAAAA,EAAkB,qBAAqB,CAAC/H,GAAMC,MAAQ;AACjG,EAAA6H,GAAU,KAAK9H,GAAMC,CAAG;AACxB,QAAMkJ,IAAeC,GAAiBnJ,EAAI,QAAQ,GAC5CoJ,IAAU,IAAI,OAAO,OAAOpJ,EAAI,YAAa,WAAW,MAAMA,EAAI,QAAQ,IAAIkJ,CAAY,KAAKA,CAAY;AACjH,EAAAlJ,EAAI,UAAUoJ,GACdrJ,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMwI,IAAMxI,EAAK,KAAK;AACtB,IAAAwI,EAAI,aAAaA,EAAI,WAAW,oBAAI,IAAG,IACvCA,EAAI,SAAS,IAAIa,CAAO;AAAA,EAC5B,CAAC,GACDrJ,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAIA,EAAQ,MAAM,SAAShI,EAAI,UAAUA,EAAI,QAAQ,KAErDgI,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAUhI,EAAI;AAAA,MACd,OAAOgI,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACYqJ,KAAoCvB,gBAAAA,EAAkB,uBAAuB,CAAC/H,GAAMC,MAAQ;AACrG,EAAA6H,GAAU,KAAK9H,GAAMC,CAAG;AACxB,QAAMoJ,IAAU,IAAI,OAAO,IAAID,GAAiBnJ,EAAI,MAAM,CAAC,IAAI;AAC/D,EAAAA,EAAI,YAAYA,EAAI,UAAUoJ,IAC9BrJ,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMwI,IAAMxI,EAAK,KAAK;AACtB,IAAAwI,EAAI,aAAaA,EAAI,WAAW,oBAAI,IAAG,IACvCA,EAAI,SAAS,IAAIa,CAAO;AAAA,EAC5B,CAAC,GACDrJ,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAIA,EAAQ,MAAM,WAAWhI,EAAI,MAAM,KAEvCgI,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQhI,EAAI;AAAA,MACZ,OAAOgI,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACYsJ,KAAkCxB,gBAAAA,EAAkB,qBAAqB,CAAC/H,GAAMC,MAAQ;AACjG,EAAA6H,GAAU,KAAK9H,GAAMC,CAAG;AACxB,QAAMoJ,IAAU,IAAI,OAAO,KAAKD,GAAiBnJ,EAAI,MAAM,CAAC,GAAG;AAC/D,EAAAA,EAAI,YAAYA,EAAI,UAAUoJ,IAC9BrJ,EAAK,KAAK,SAAS,KAAK,CAACA,MAAS;AAC9B,UAAMwI,IAAMxI,EAAK,KAAK;AACtB,IAAAwI,EAAI,aAAaA,EAAI,WAAW,oBAAI,IAAG,IACvCA,EAAI,SAAS,IAAIa,CAAO;AAAA,EAC5B,CAAC,GACDrJ,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAIA,EAAQ,MAAM,SAAShI,EAAI,MAAM,KAErCgI,EAAQ,OAAO,KAAK;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQhI,EAAI;AAAA,MACZ,OAAOgI,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GAyCYuJ,KAAmCzB,gBAAAA,EAAkB,sBAAsB,CAAC/H,GAAMC,MAAQ;AACnG,EAAA6H,GAAU,KAAK9H,GAAMC,CAAG,GACxBD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAAA,EAAQ,QAAQhI,EAAI,GAAGgI,EAAQ,KAAK;AAAA,EACxC;AACJ,CAAC,GCxjBYzB,KAAU;AAAA,EACnB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACX,GCGaiD,KAAyB1B,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,MAAIM;AACJ,EAAAP,MAASA,IAAO,KAChBA,EAAK,KAAK,MAAMC,GAChBD,EAAK,KAAK,MAAMA,EAAK,KAAK,OAAO,IACjCA,EAAK,KAAK,UAAUwG;AACpB,QAAMkD,IAAS,CAAC,GAAI1J,EAAK,KAAK,IAAI,UAAU,CAAA,CAAG;AAE/C,EAAIA,EAAK,KAAK,OAAO,IAAI,WAAW,KAChC0J,EAAO,QAAQ1J,CAAI;AAEvB,aAAW2J,KAAMD;AACb,eAAWlJ,KAAMmJ,EAAG,KAAK;AACrB,MAAAnJ,EAAGR,CAAI;AAGf,MAAI0J,EAAO,WAAW;AAGlB,KAACnJ,IAAKP,EAAK,MAAM,aAAaO,EAAG,WAAW,KAC5CP,EAAK,KAAK,UAAU,KAAK,MAAM;AAC3B,MAAAA,EAAK,KAAK,MAAMA,EAAK,KAAK;AAAA,IAC9B,CAAC;AAAA,OAEA;AACD,UAAM4J,IAAY,CAAC3B,GAASyB,GAAQpG,MAAQ;AACxC,UAAIuG,IAAYC,GAAa7B,CAAO,GAChC8B;AACJ,iBAAWJ,KAAMD,GAAQ;AACrB,YAAIC,EAAG,KAAK,IAAI;AAEZ,cAAI,CADcA,EAAG,KAAK,IAAI,KAAK1B,CAAO;AAEtC;AAAA,mBAEC4B;AACL;AAEJ,cAAMG,IAAU/B,EAAQ,OAAO,QACzB/H,IAAIyJ,EAAG,KAAK,MAAM1B,CAAO;AAC/B,YAAI/H,aAAa,WAAWoD,GAAK,UAAU;AACvC,gBAAM,IAAIsB,GAAmB;AAEjC,YAAImF,KAAe7J,aAAa;AAC5B,UAAA6J,KAAeA,KAAe,QAAQ,QAAO,GAAI,KAAK,YAAY;AAG9D,YAFA,MAAM7J,GACU+H,EAAQ,OAAO,WACf+B,MAEXH,MACDA,IAAYC,GAAa7B,GAAS+B,CAAO;AAAA,UACjD,CAAC;AAAA,aAEA;AAED,cADgB/B,EAAQ,OAAO,WACf+B;AACZ;AACJ,UAAKH,MACDA,IAAYC,GAAa7B,GAAS+B,CAAO;AAAA,QACjD;AAAA,MACJ;AACA,aAAID,IACOA,EAAY,KAAK,MACb9B,CACV,IAEEA;AAAA,IACX,GAWMgC,IAAqB,CAACC,GAAQjC,GAAS3E,MAAQ;AAEjD,UAAIwG,GAAaI,CAAM;AACnB,eAAAA,EAAO,UAAU,IACVA;AAGX,YAAMC,IAAcP,EAAU3B,GAASyB,GAAQpG,CAAG;AAClD,UAAI6G,aAAuB,SAAS;AAChC,YAAI7G,EAAI,UAAU;AACd,gBAAM,IAAIsB,GAAmB;AACjC,eAAOuF,EAAY,KAAK,CAACA,MAAgBnK,EAAK,KAAK,MAAMmK,GAAa7G,CAAG,CAAC;AAAA,MAC9E;AACA,aAAOtD,EAAK,KAAK,MAAMmK,GAAa7G,CAAG;AAAA,IAC3C;AACA,IAAAtD,EAAK,KAAK,MAAM,CAACiI,GAAS3E,MAAQ;AAC9B,UAAIA,EAAI;AACJ,eAAOtD,EAAK,KAAK,MAAMiI,GAAS3E,CAAG;AAEvC,UAAIA,EAAI,cAAc,YAAY;AAG9B,cAAM4G,IAASlK,EAAK,KAAK,MAAM,EAAE,OAAOiI,EAAQ,OAAO,QAAQ,CAAA,EAAE,GAAI,EAAE,GAAG3E,GAAK,YAAY,IAAM;AACjG,eAAI4G,aAAkB,UACXA,EAAO,KAAK,CAACA,MACTD,EAAmBC,GAAQjC,GAAS3E,CAAG,CACjD,IAEE2G,EAAmBC,GAAQjC,GAAS3E,CAAG;AAAA,MAClD;AAEA,YAAMlO,IAAS4K,EAAK,KAAK,MAAMiI,GAAS3E,CAAG;AAC3C,UAAIlO,aAAkB,SAAS;AAC3B,YAAIkO,EAAI,UAAU;AACd,gBAAM,IAAIsB,GAAmB;AACjC,eAAOxP,EAAO,KAAK,CAACA,MAAWwU,EAAUxU,GAAQsU,GAAQpG,CAAG,CAAC;AAAA,MACjE;AACA,aAAOsG,EAAUxU,GAAQsU,GAAQpG,CAAG;AAAA,IACxC;AAAA,EACJ;AACA,EAAAtD,EAAK,WAAW,IAAI;AAAA,IAChB,UAAU,CAAClN,MAAU;AACjB,UAAI;AACA,cAAM3C,IAAIgV,GAAUnF,GAAMlN,CAAK;AAC/B,eAAO3C,EAAE,UAAU,EAAE,OAAOA,EAAE,KAAI,IAAK,EAAE,QAAQA,EAAE,OAAO,OAAM;AAAA,MACpE,QACU;AACN,eAAOmV,GAAetF,GAAMlN,CAAK,EAAE,KAAK,CAAC3C,MAAOA,EAAE,UAAU,EAAE,OAAOA,EAAE,KAAI,IAAK,EAAE,QAAQA,EAAE,OAAO,OAAM,CAAG;AAAA,MAChH;AAAA,IACJ;AAAA,IACA,QAAQ;AAAA,IACR,SAAS;AAAA,EACjB;AACA,CAAC,GAEYia,KAA2BrC,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,UAAU,CAAC,GAAIA,GAAM,KAAK,KAAK,YAAY,CAAA,CAAG,EAAE,IAAG,KAAMqK,GAAerK,EAAK,KAAK,GAAG,GAC/FA,EAAK,KAAK,QAAQ,CAACiI,GAAS/H,MAAM;AAC9B,QAAID,EAAI;AACJ,UAAI;AACA,QAAAgI,EAAQ,QAAQ,OAAOA,EAAQ,KAAK;AAAA,MACxC,QACU;AAAA,MAAE;AAChB,WAAI,OAAOA,EAAQ,SAAU,YAE7BA,EAAQ,OAAO,KAAK;AAAA,MAChB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,OAAOA,EAAQ;AAAA,MACf,MAAAjI;AAAA,IACZ,CAAS,GACMiI;AAAA,EACX;AACJ,CAAC,GACYqC,IAAiCvC,gBAAAA,EAAkB,oBAAoB,CAAC/H,GAAMC,MAAQ;AAE/FsK,EAAAA,GAA6B,KAAKvK,GAAMC,CAAG,GAC3CmK,GAAW,KAAKpK,GAAMC,CAAG;AAC7B,CAAC,GACYuK,KAAyBzC,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAA,EAAI,YAAYA,EAAI,UAAUwK,KAC9BH,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYyK,KAAyB3C,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,MAAIA,EAAI,SAAS;AAWb,UAAMuB,IAVa;AAAA,MACf,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAChB,EAC6BvB,EAAI,OAAO;AAChC,QAAIuB,MAAM;AACN,YAAM,IAAI,MAAM,0BAA0BvB,EAAI,OAAO,GAAG;AAC5D,IAAAA,EAAI,YAAYA,EAAI,UAAU0K,GAAanJ,CAAC;AAAA,EAChD;AAEI,IAAAvB,EAAI,YAAYA,EAAI,UAAU0K,GAAY;AAC9C,EAAAL,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACY2K,KAA0B7C,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAA,EAAI,YAAYA,EAAI,UAAU4K,KAC9BP,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACY6K,KAAwB/C,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAC7E,EAAAqK,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,QAAI;AAEA,YAAM8C,IAAU9C,EAAQ,MAAM,KAAI,GAE5B+C,IAAM,IAAI,IAAID,CAAO;AAC3B,MAAI9K,EAAI,aACJA,EAAI,SAAS,YAAY,GACpBA,EAAI,SAAS,KAAK+K,EAAI,QAAQ,KAC/B/C,EAAQ,OAAO,KAAK;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAShI,EAAI,SAAS;AAAA,QACtB,OAAOgI,EAAQ;AAAA,QACf,MAAAjI;AAAA,QACA,UAAU,CAACC,EAAI;AAAA,MACvC,CAAqB,IAGLA,EAAI,aACJA,EAAI,SAAS,YAAY,GACpBA,EAAI,SAAS,KAAK+K,EAAI,SAAS,SAAS,GAAG,IAAIA,EAAI,SAAS,MAAM,GAAG,EAAE,IAAIA,EAAI,QAAQ,KACxF/C,EAAQ,OAAO,KAAK;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAShI,EAAI,SAAS;AAAA,QACtB,OAAOgI,EAAQ;AAAA,QACf,MAAAjI;AAAA,QACA,UAAU,CAACC,EAAI;AAAA,MACvC,CAAqB,IAILA,EAAI,YAEJgI,EAAQ,QAAQ+C,EAAI,OAIpB/C,EAAQ,QAAQ8C;AAEpB;AAAA,IACJ,QACU;AACN,MAAA9C,EAAQ,OAAO,KAAK;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,OAAOA,EAAQ;AAAA,QACf,MAAAjI;AAAA,QACA,UAAU,CAACC,EAAI;AAAA,MAC/B,CAAa;AAAA,IACL;AAAA,EACJ;AACJ,CAAC,GACYgL,KAA0BlD,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAA,EAAI,YAAYA,EAAI,UAAUiL,GAAa,IAC3CZ,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYkL,KAA2BpD,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF,EAAAA,EAAI,YAAYA,EAAI,UAAUmL,KAC9Bd,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYoL,KAAyBtD,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAA,EAAI,YAAYA,EAAI,UAAUqL,KAC9BhB,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYsL,KAA0BxD,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAA,EAAI,YAAYA,EAAI,UAAUuL,KAC9BlB,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYwL,KAAyB1D,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAA,EAAI,YAAYA,EAAI,UAAUyL,KAC9BpB,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACY0L,KAAwB5D,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAC7E,EAAAA,EAAI,YAAYA,EAAI,UAAU2L,KAC9BtB,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACY4L,KAA0B9D,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAA,EAAI,YAAYA,EAAI,UAAU6L,KAC9BxB,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACY8L,KAAgChE,gBAAAA,EAAkB,mBAAmB,CAAC/H,GAAMC,MAAQ;AAC7F,EAAAA,EAAI,YAAYA,EAAI,UAAU+L,GAAiB/L,CAAG,IAClDqK,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYgM,KAA4BlE,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrF,EAAAA,EAAI,YAAYA,EAAI,UAAUiM,KAC9B5B,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYkM,KAA4BpE,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrF,EAAAA,EAAI,YAAYA,EAAI,UAAUmM,GAAanM,CAAG,IAC9CqK,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYoM,KAAgCtE,gBAAAA,EAAkB,mBAAmB,CAAC/H,GAAMC,MAAQ;AAC7F,EAAAA,EAAI,YAAYA,EAAI,UAAUqM,KAC9BhC,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACYsM,KAAyBxE,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAA,EAAI,YAAYA,EAAI,UAAUuM,KAC9BlC,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,IAAI,SAAS;AAC3B,CAAC,GACYyM,KAAyB1E,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAA,EAAI,YAAYA,EAAI,UAAUyM,KAC9BpC,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,IAAI,SAAS,QACvBA,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,QAAI;AAEA,UAAI,IAAI,WAAWA,EAAQ,KAAK,GAAG;AAAA,IAEvC,QACM;AACF,MAAAA,EAAQ,OAAO,KAAK;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,OAAOA,EAAQ;AAAA,QACf,MAAAjI;AAAA,QACA,UAAU,CAACC,EAAI;AAAA,MAC/B,CAAa;AAAA,IACL;AAAA,EACJ;AACJ,CAAC,GAMY0M,KAA2B5E,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF,EAAAA,EAAI,YAAYA,EAAI,UAAU2M,KAC9BtC,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC,GACY4M,KAA2B9E,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF,EAAAA,EAAI,YAAYA,EAAI,UAAU6M,KAC9BxC,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,UAAM8E,IAAQ9E,EAAQ,MAAM,MAAM,GAAG;AACrC,QAAI;AACA,UAAI8E,EAAM,WAAW;AACjB,cAAM,IAAI,MAAK;AACnB,YAAM,CAACC,GAASjb,CAAM,IAAIgb;AAC1B,UAAI,CAAChb;AACD,cAAM,IAAI,MAAK;AACnB,YAAMkb,IAAY,OAAOlb,CAAM;AAC/B,UAAI,GAAGkb,CAAS,OAAOlb;AACnB,cAAM,IAAI,MAAK;AACnB,UAAIkb,IAAY,KAAKA,IAAY;AAC7B,cAAM,IAAI,MAAK;AAEnB,UAAI,IAAI,WAAWD,CAAO,GAAG;AAAA,IACjC,QACM;AACF,MAAA/E,EAAQ,OAAO,KAAK;AAAA,QAChB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,OAAOA,EAAQ;AAAA,QACf,MAAAjI;AAAA,QACA,UAAU,CAACC,EAAI;AAAA,MAC/B,CAAa;AAAA,IACL;AAAA,EACJ;AACJ,CAAC;AAEM,SAASiN,GAAcjL,GAAM;AAChC,MAAIA,MAAS;AACT,WAAO;AACX,MAAIA,EAAK,SAAS,MAAM;AACpB,WAAO;AACX,MAAI;AAEA,gBAAKA,CAAI,GACF;AAAA,EACX,QACM;AACF,WAAO;AAAA,EACX;AACJ;AACO,MAAMkL,KAA2BpF,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF,EAAAA,EAAI,YAAYA,EAAI,UAAUmN,KAC9B9C,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,IAAI,kBAAkB,UAChCA,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAIiF,GAAcjF,EAAQ,KAAK,KAE/BA,EAAQ,OAAO,KAAK;AAAA,MAChB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAOA,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC;AAEM,SAASoN,GAAiBpL,GAAM;AACnC,MAAI,CAACqL,GAAkB,KAAKrL,CAAI;AAC5B,WAAO;AACX,QAAM+E,IAAS/E,EAAK,QAAQ,SAAS,CAACsL,MAAOA,MAAM,MAAM,MAAM,GAAI,GAC7DC,IAASxG,EAAO,OAAO,KAAK,KAAKA,EAAO,SAAS,CAAC,IAAI,GAAG,GAAG;AAClE,SAAOkG,GAAcM,CAAM;AAC/B;AACO,MAAMC,KAA8B1F,gBAAAA,EAAkB,iBAAiB,CAAC/H,GAAMC,MAAQ;AACzF,EAAAA,EAAI,YAAYA,EAAI,UAAUqN,KAC9BhD,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,IAAI,kBAAkB,aAChCA,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAIoF,GAAiBpF,EAAQ,KAAK,KAElCA,EAAQ,OAAO,KAAK;AAAA,MAChB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAOA,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC,GACYyN,KAAyB3F,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAA,EAAI,YAAYA,EAAI,UAAU0N,KAC9BrD,EAAiB,KAAKtK,GAAMC,CAAG;AACnC,CAAC;AAEM,SAAS2N,GAAWC,GAAOC,IAAY,MAAM;AAChD,MAAI;AACA,UAAMC,IAAcF,EAAM,MAAM,GAAG;AACnC,QAAIE,EAAY,WAAW;AACvB,aAAO;AACX,UAAM,CAACC,CAAM,IAAID;AACjB,QAAI,CAACC;AACD,aAAO;AAEX,UAAMC,IAAe,KAAK,MAAM,KAAKD,CAAM,CAAC;AAK5C,WAJI,WAASC,KAAgBA,GAAc,QAAQ,SAE/C,CAACA,EAAa,OAEdH,MAAc,EAAE,SAASG,MAAiBA,EAAa,QAAQH;AAAA,EAGvE,QACM;AACF,WAAO;AAAA,EACX;AACJ;AACO,MAAMI,KAAwBnG,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAC7E,EAAAqK,EAAiB,KAAKtK,GAAMC,CAAG,GAC/BD,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,IAAI2F,GAAW3F,EAAQ,OAAOhI,EAAI,GAAG,KAErCgI,EAAQ,OAAO,KAAK;AAAA,MAChB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAOA,EAAQ;AAAA,MACf,MAAAjI;AAAA,MACA,UAAU,CAACC,EAAI;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ,CAAC;AA4MD,SAASkO,GAAkB/Y,GAAQgZ,GAAOna,GAAO;AAC7C,EAAImB,EAAO,OAAO,UACdgZ,EAAM,OAAO,KAAK,GAAGC,GAAkBpa,GAAOmB,EAAO,MAAM,CAAC,GAEhEgZ,EAAM,MAAMna,CAAK,IAAImB,EAAO;AAChC;AACO,MAAMkZ,KAA0BvG,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,UAAMvC,IAAQkH,EAAQ;AACtB,QAAI,CAAC,MAAM,QAAQlH,CAAK;AACpB,aAAAkH,EAAQ,OAAO,KAAK;AAAA,QAChB,UAAU;AAAA,QACV,MAAM;AAAA,QACN,OAAAlH;AAAA,QACA,MAAAf;AAAA,MAChB,CAAa,GACMiI;AAEX,IAAAA,EAAQ,QAAQ,MAAMlH,EAAM,MAAM;AAClC,UAAMwN,IAAQ,CAAA;AACd,aAAS7Y,IAAI,GAAGA,IAAIqL,EAAM,QAAQrL,KAAK;AACnC,YAAM8Y,IAAOzN,EAAMrL,CAAC,GACdN,IAAS6K,EAAI,QAAQ,KAAK,IAAI;AAAA,QAChC,OAAOuO;AAAA,QACP,QAAQ,CAAA;AAAA,MACxB,GAAelL,CAAG;AACN,MAAIlO,aAAkB,UAClBmZ,EAAM,KAAKnZ,EAAO,KAAK,CAACA,MAAW+Y,GAAkB/Y,GAAQ6S,GAASvS,CAAC,CAAC,CAAC,IAGzEyY,GAAkB/Y,GAAQ6S,GAASvS,CAAC;AAAA,IAE5C;AACA,WAAI6Y,EAAM,SACC,QAAQ,IAAIA,CAAK,EAAE,KAAK,MAAMtG,CAAO,IAEzCA;AAAA,EACX;AACJ,CAAC;AAiND,SAASwG,GAAmBC,GAASN,GAAOpO,GAAMsD,GAAK;AACnD,aAAWlO,KAAUsZ;AACjB,QAAItZ,EAAO,OAAO,WAAW;AACzB,aAAAgZ,EAAM,QAAQhZ,EAAO,OACdgZ;AAGf,QAAMO,IAAaD,EAAQ,OAAO,CAACve,MAAM,CAAC2Z,GAAa3Z,CAAC,CAAC;AACzD,SAAIwe,EAAW,WAAW,KACtBP,EAAM,QAAQO,EAAW,CAAC,EAAE,OACrBA,EAAW,CAAC,MAEvBP,EAAM,OAAO,KAAK;AAAA,IACd,MAAM;AAAA,IACN,OAAOA,EAAM;AAAA,IACb,MAAApO;AAAA,IACA,QAAQ0O,EAAQ,IAAI,CAACtZ,MAAWA,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC,CAAC;AAAA,EAC/G,CAAK,GACMsJ;AACX;AACO,MAAMQ,KAA0B7G,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvB4O,EAAgB7O,EAAK,MAAM,SAAS,MAAMC,EAAI,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,UAAU,UAAU,IAAI,aAAa,MAAS,GACvH4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,WAAW,UAAU,IAAI,aAAa,MAAS,GACzH4O,EAAgB7O,EAAK,MAAM,UAAU,MAAM;AACvC,QAAIC,EAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,MAAM;AACtC,aAAO,IAAI,IAAIA,EAAI,QAAQ,QAAQ,CAAC6O,MAAW,MAAM,KAAKA,EAAO,KAAK,MAAM,CAAC,CAAC;AAAA,EAGtF,CAAC,GACDD,EAAgB7O,EAAK,MAAM,WAAW,MAAM;AACxC,QAAIC,EAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,OAAO,GAAG;AAC1C,YAAM8O,IAAW9O,EAAI,QAAQ,IAAI,CAACkC,MAAMA,EAAE,KAAK,OAAO;AACtD,aAAO,IAAI,OAAO,KAAK4M,EAAS,IAAI,CAACC,MAAMC,GAAgBD,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI;AAAA,IACvF;AAAA,EAEJ,CAAC;AACD,QAAME,IAASjP,EAAI,QAAQ,WAAW,GAChCkP,IAAQlP,EAAI,QAAQ,CAAC,EAAE,KAAK;AAClC,EAAAD,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAI4L;AACA,aAAOC,EAAMlH,GAAS3E,CAAG;AAE7B,QAAI8L,IAAQ;AACZ,UAAMV,IAAU,CAAA;AAChB,eAAWI,KAAU7O,EAAI,SAAS;AAC9B,YAAM7K,IAAS0Z,EAAO,KAAK,IAAI;AAAA,QAC3B,OAAO7G,EAAQ;AAAA,QACf,QAAQ,CAAA;AAAA,MACxB,GAAe3E,CAAG;AACN,UAAIlO,aAAkB;AAClB,QAAAsZ,EAAQ,KAAKtZ,CAAM,GACnBga,IAAQ;AAAA,WAEP;AACD,YAAIha,EAAO,OAAO,WAAW;AACzB,iBAAOA;AACX,QAAAsZ,EAAQ,KAAKtZ,CAAM;AAAA,MACvB;AAAA,IACJ;AACA,WAAKga,IAEE,QAAQ,IAAIV,CAAO,EAAE,KAAK,CAACA,MACvBD,GAAmBC,GAASzG,GAASjI,GAAMsD,CAAG,CACxD,IAHUmL,GAAmBC,GAASzG,GAASjI,GAAMsD,CAAG;AAAA,EAI7D;AACJ,CAAC,GAqEY+L,KAAiCtH,gBAAAA,EAAkB,oBAAoB,CAAC/H,GAAMC,MAAQ;AAC/F,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,UAAMvC,IAAQkH,EAAQ,OAChBqH,IAAOrP,EAAI,KAAK,KAAK,IAAI,EAAE,OAAOc,GAAO,QAAQ,CAAA,EAAE,GAAIuC,CAAG,GAC1DiM,IAAQtP,EAAI,MAAM,KAAK,IAAI,EAAE,OAAOc,GAAO,QAAQ,CAAA,EAAE,GAAIuC,CAAG;AAElE,WADcgM,aAAgB,WAAWC,aAAiB,UAE/C,QAAQ,IAAI,CAACD,GAAMC,CAAK,CAAC,EAAE,KAAK,CAAC,CAACD,GAAMC,CAAK,MACzCC,GAA0BvH,GAASqH,GAAMC,CAAK,CACxD,IAEEC,GAA0BvH,GAASqH,GAAMC,CAAK;AAAA,EACzD;AACJ,CAAC;AACD,SAASE,GAAYC,GAAGC,GAAG;AAGvB,MAAID,MAAMC;AACN,WAAO,EAAE,OAAO,IAAM,MAAMD,EAAC;AAEjC,MAAIA,aAAa,QAAQC,aAAa,QAAQ,CAACD,KAAM,CAACC;AAClD,WAAO,EAAE,OAAO,IAAM,MAAMD,EAAC;AAEjC,MAAIE,GAAmBF,CAAC,KAAKE,GAAmBD,CAAC,GAAG;AAChD,UAAME,IAAQ,OAAO,KAAKF,CAAC,GACrBG,IAAa,OAAO,KAAKJ,CAAC,EAAE,OAAO,CAACnd,MAAQsd,EAAM,QAAQtd,CAAG,MAAM,EAAE,GACrEwd,IAAS,EAAE,GAAGL,GAAG,GAAGC,EAAC;AAC3B,eAAWpd,KAAOud,GAAY;AAC1B,YAAME,IAAcP,GAAYC,EAAEnd,CAAG,GAAGod,EAAEpd,CAAG,CAAC;AAC9C,UAAI,CAACyd,EAAY;AACb,eAAO;AAAA,UACH,OAAO;AAAA,UACP,gBAAgB,CAACzd,GAAK,GAAGyd,EAAY,cAAc;AAAA,QACvE;AAEY,MAAAD,EAAOxd,CAAG,IAAIyd,EAAY;AAAA,IAC9B;AACA,WAAO,EAAE,OAAO,IAAM,MAAMD,EAAM;AAAA,EACtC;AACA,MAAI,MAAM,QAAQL,CAAC,KAAK,MAAM,QAAQC,CAAC,GAAG;AACtC,QAAID,EAAE,WAAWC,EAAE;AACf,aAAO,EAAE,OAAO,IAAO,gBAAgB,CAAA,EAAE;AAE7C,UAAMM,IAAW,CAAA;AACjB,aAAShc,IAAQ,GAAGA,IAAQyb,EAAE,QAAQzb,KAAS;AAC3C,YAAMic,IAAQR,EAAEzb,CAAK,GACfkc,IAAQR,EAAE1b,CAAK,GACf+b,IAAcP,GAAYS,GAAOC,CAAK;AAC5C,UAAI,CAACH,EAAY;AACb,eAAO;AAAA,UACH,OAAO;AAAA,UACP,gBAAgB,CAAC/b,GAAO,GAAG+b,EAAY,cAAc;AAAA,QACzE;AAEY,MAAAC,EAAS,KAAKD,EAAY,IAAI;AAAA,IAClC;AACA,WAAO,EAAE,OAAO,IAAM,MAAMC,EAAQ;AAAA,EACxC;AACA,SAAO,EAAE,OAAO,IAAO,gBAAgB,CAAA,EAAE;AAC7C;AACA,SAAST,GAA0Bpa,GAAQka,GAAMC,GAAO;AAOpD,MANID,EAAK,OAAO,UACZla,EAAO,OAAO,KAAK,GAAGka,EAAK,MAAM,GAEjCC,EAAM,OAAO,UACbna,EAAO,OAAO,KAAK,GAAGma,EAAM,MAAM,GAElCzF,GAAa1U,CAAM;AACnB,WAAOA;AACX,QAAMgb,IAASX,GAAYH,EAAK,OAAOC,EAAM,KAAK;AAClD,MAAI,CAACa,EAAO;AACR,UAAM,IAAI,MAAM,wCAA6C,KAAK,UAAUA,EAAO,cAAc,CAAC,EAAE;AAExG,SAAAhb,EAAO,QAAQgb,EAAO,MACfhb;AACX;AA+UO,MAAMib,KAA8BtI,gBAAAA,EAAkB,iBAAiB,CAAC/H,GAAMC,MAAQ;AACzF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAIA,EAAI,cAAc;AAClB,YAAM,IAAIgN,GAAqBtQ,EAAK,YAAY,IAAI;AAExD,UAAMuQ,IAAOtQ,EAAI,UAAUgI,EAAQ,OAAOA,CAAO;AACjD,QAAI3E,EAAI;AAEJ,cADeiN,aAAgB,UAAUA,IAAO,QAAQ,QAAQA,CAAI,GACtD,KAAK,CAACC,OAChBvI,EAAQ,QAAQuI,GACTvI,EACV;AAEL,QAAIsI,aAAgB;AAChB,YAAM,IAAI3L,GAAmB;AAEjC,WAAAqD,EAAQ,QAAQsI,GACTtI;AAAA,EACX;AACJ,CAAC;AACD,SAASwI,GAAqBrb,GAAQ2L,GAAO;AACzC,SAAI3L,EAAO,OAAO,UAAU2L,MAAU,SAC3B,EAAE,QAAQ,IAAI,OAAO,OAAS,IAElC3L;AACX;AACO,MAAMsb,KAA6B3I,gBAAAA,EAAkB,gBAAgB,CAAC/H,GAAMC,MAAQ;AACvF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,QAAQ,YAClBA,EAAK,KAAK,SAAS,YACnB6O,EAAgB7O,EAAK,MAAM,UAAU,MAC1BC,EAAI,UAAU,KAAK,SAAS,oBAAI,IAAI,CAAC,GAAGA,EAAI,UAAU,KAAK,QAAQ,MAAS,CAAC,IAAI,MAC3F,GACD4O,EAAgB7O,EAAK,MAAM,WAAW,MAAM;AACxC,UAAMqJ,IAAUpJ,EAAI,UAAU,KAAK;AACnC,WAAOoJ,IAAU,IAAI,OAAO,KAAK4F,GAAgB5F,EAAQ,MAAM,CAAC,KAAK,IAAI;AAAA,EAC7E,CAAC,GACDrJ,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAIrD,EAAI,UAAU,KAAK,UAAU,YAAY;AACzC,YAAM7K,IAAS6K,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAClD,aAAIlO,aAAkB,UACXA,EAAO,KAAK,CAACjF,MAAMsgB,GAAqBtgB,GAAG8X,EAAQ,KAAK,CAAC,IAC7DwI,GAAqBrb,GAAQ6S,EAAQ,KAAK;AAAA,IACrD;AACA,WAAIA,EAAQ,UAAU,SACXA,IAEJhI,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAAA,EAC9C;AACJ,CAAC,GACYqN,KAA6B5I,gBAAAA,EAAkB,gBAAgB,CAAC/H,GAAMC,MAAQ;AACvF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvB4O,EAAgB7O,EAAK,MAAM,SAAS,MAAMC,EAAI,UAAU,KAAK,KAAK,GAClE4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,UAAU,KAAK,MAAM,GACpE4O,EAAgB7O,EAAK,MAAM,WAAW,MAAM;AACxC,UAAMqJ,IAAUpJ,EAAI,UAAU,KAAK;AACnC,WAAOoJ,IAAU,IAAI,OAAO,KAAK4F,GAAgB5F,EAAQ,MAAM,CAAC,SAAS,IAAI;AAAA,EACjF,CAAC,GACDwF,EAAgB7O,EAAK,MAAM,UAAU,MAC1BC,EAAI,UAAU,KAAK,SAAS,oBAAI,IAAI,CAAC,GAAGA,EAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,MACtF,GACDD,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAEpB2E,EAAQ,UAAU,OACXA,IACJhI,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAElD,CAAC,GACYsN,KAA4B7I,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GAEvBD,EAAK,KAAK,QAAQ,YAClB6O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,UAAU,KAAK,MAAM,GACpED,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAIA,EAAI,cAAc;AAClB,aAAOrD,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAG9C,QAAI2E,EAAQ,UAAU;AAClB,aAAAA,EAAQ,QAAQhI,EAAI,cAIbgI;AAGX,UAAM7S,IAAS6K,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAClD,WAAIlO,aAAkB,UACXA,EAAO,KAAK,CAACA,MAAWyb,GAAoBzb,GAAQ6K,CAAG,CAAC,IAE5D4Q,GAAoBzb,GAAQ6K,CAAG;AAAA,EAC1C;AACJ,CAAC;AACD,SAAS4Q,GAAoB5I,GAAShI,GAAK;AACvC,SAAIgI,EAAQ,UAAU,WAClBA,EAAQ,QAAQhI,EAAI,eAEjBgI;AACX;AACO,MAAM6I,KAA6B/I,gBAAAA,EAAkB,gBAAgB,CAAC/H,GAAMC,MAAQ;AACvF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,QAAQ,YAClB6O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,UAAU,KAAK,MAAM,GACpED,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,OACpBA,EAAI,cAAc,cAIlB2E,EAAQ,UAAU,WAClBA,EAAQ,QAAQhI,EAAI,eAEjBA,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAElD,CAAC,GACYyN,KAAgChJ,gBAAAA,EAAkB,mBAAmB,CAAC/H,GAAMC,MAAQ;AAC7F,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvB4O,EAAgB7O,EAAK,MAAM,UAAU,MAAM;AACvC,UAAMwB,IAAIvB,EAAI,UAAU,KAAK;AAC7B,WAAOuB,IAAI,IAAI,IAAI,CAAC,GAAGA,CAAC,EAAE,OAAO,CAACsB,MAAMA,MAAM,MAAS,CAAC,IAAI;AAAA,EAChE,CAAC,GACD9C,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,UAAMlO,IAAS6K,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAClD,WAAIlO,aAAkB,UACXA,EAAO,KAAK,CAACA,MAAW4b,GAAwB5b,GAAQ4K,CAAI,CAAC,IAEjEgR,GAAwB5b,GAAQ4K,CAAI;AAAA,EAC/C;AACJ,CAAC;AACD,SAASgR,GAAwB/I,GAASjI,GAAM;AAC5C,SAAI,CAACiI,EAAQ,OAAO,UAAUA,EAAQ,UAAU,UAC5CA,EAAQ,OAAO,KAAK;AAAA,IAChB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAOA,EAAQ;AAAA,IACf,MAAAjI;AAAA,EACZ,CAAS,GAEEiI;AACX;AAkBO,MAAMgJ,KAA0BlJ,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvB4O,EAAgB7O,EAAK,MAAM,SAAS,MAAMC,EAAI,UAAU,KAAK,KAAK,GAClE4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,UAAU,KAAK,MAAM,GACpE4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,UAAU,KAAK,MAAM,GACpED,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAIA,EAAI,cAAc;AAClB,aAAOrD,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAG9C,UAAMlO,IAAS6K,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAClD,WAAIlO,aAAkB,UACXA,EAAO,KAAK,CAACA,OAChB6S,EAAQ,QAAQ7S,EAAO,OACnBA,EAAO,OAAO,WACd6S,EAAQ,QAAQhI,EAAI,WAAW;AAAA,MAC3B,GAAGgI;AAAA,MACH,OAAO;AAAA,QACH,QAAQ7S,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC;AAAA,MAC1G;AAAA,MACwB,OAAOmD,EAAQ;AAAA,IACvC,CAAqB,GACDA,EAAQ,SAAS,CAAA,IAEdA,EACV,KAELA,EAAQ,QAAQ7S,EAAO,OACnBA,EAAO,OAAO,WACd6S,EAAQ,QAAQhI,EAAI,WAAW;AAAA,MAC3B,GAAGgI;AAAA,MACH,OAAO;AAAA,QACH,QAAQ7S,EAAO,OAAO,IAAI,CAAC8N,MAAQ2B,GAAmB3B,GAAKI,GAAKwB,GAAW,CAAE,CAAC;AAAA,MAClG;AAAA,MACgB,OAAOmD,EAAQ;AAAA,IAC/B,CAAa,GACDA,EAAQ,SAAS,CAAA,IAEdA;AAAA,EACX;AACJ,CAAC,GAgBYiJ,KAAyBnJ,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvB4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,GAAG,KAAK,MAAM,GAC7D4O,EAAgB7O,EAAK,MAAM,SAAS,MAAMC,EAAI,GAAG,KAAK,KAAK,GAC3D4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,IAAI,KAAK,MAAM,GAC9D4O,EAAgB7O,EAAK,MAAM,cAAc,MAAMC,EAAI,GAAG,KAAK,UAAU,GACrED,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAIA,EAAI,cAAc,YAAY;AAC9B,YAAMiM,IAAQtP,EAAI,IAAI,KAAK,IAAIgI,GAAS3E,CAAG;AAC3C,aAAIiM,aAAiB,UACVA,EAAM,KAAK,CAACA,MAAU4B,GAAiB5B,GAAOtP,EAAI,IAAIqD,CAAG,CAAC,IAE9D6N,GAAiB5B,GAAOtP,EAAI,IAAIqD,CAAG;AAAA,IAC9C;AACA,UAAMgM,IAAOrP,EAAI,GAAG,KAAK,IAAIgI,GAAS3E,CAAG;AACzC,WAAIgM,aAAgB,UACTA,EAAK,KAAK,CAACA,MAAS6B,GAAiB7B,GAAMrP,EAAI,KAAKqD,CAAG,CAAC,IAE5D6N,GAAiB7B,GAAMrP,EAAI,KAAKqD,CAAG;AAAA,EAC9C;AACJ,CAAC;AACD,SAAS6N,GAAiB7B,GAAM8B,GAAM9N,GAAK;AACvC,SAAIgM,EAAK,OAAO,UAEZA,EAAK,UAAU,IACRA,KAEJ8B,EAAK,KAAK,IAAI,EAAE,OAAO9B,EAAK,OAAO,QAAQA,EAAK,OAAM,GAAIhM,CAAG;AACxE;AAuDO,MAAM+N,KAA6BtJ,gBAAAA,EAAkB,gBAAgB,CAAC/H,GAAMC,MAAQ;AACvF,EAAAwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvB4O,EAAgB7O,EAAK,MAAM,cAAc,MAAMC,EAAI,UAAU,KAAK,UAAU,GAC5E4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,UAAU,KAAK,MAAM,GACpE4O,EAAgB7O,EAAK,MAAM,SAAS,MAAMC,EAAI,WAAW,MAAM,KAAK,GACpE4O,EAAgB7O,EAAK,MAAM,UAAU,MAAMC,EAAI,WAAW,MAAM,MAAM,GACtED,EAAK,KAAK,QAAQ,CAACiI,GAAS3E,MAAQ;AAChC,QAAIA,EAAI,cAAc;AAClB,aAAOrD,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAE9C,UAAMlO,IAAS6K,EAAI,UAAU,KAAK,IAAIgI,GAAS3E,CAAG;AAClD,WAAIlO,aAAkB,UACXA,EAAO,KAAKkc,EAAoB,IAEpCA,GAAqBlc,CAAM;AAAA,EACtC;AACJ,CAAC;AACD,SAASkc,GAAqBrJ,GAAS;AACnC,SAAAA,EAAQ,QAAQ,OAAO,OAAOA,EAAQ,KAAK,GACpCA;AACX;AA0JO,MAAMsJ,KAA2BxJ,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnFuR,EAAAA,GAAiB,KAAKxR,GAAMC,CAAG,GAC/BwJ,GAAS,KAAKzJ,GAAMC,CAAG,GACvBD,EAAK,KAAK,QAAQ,CAACiI,GAAS/H,MACjB+H,GAEXjI,EAAK,KAAK,QAAQ,CAACiI,MAAY;AAC3B,UAAMlH,IAAQkH,EAAQ,OAChB9X,IAAI8P,EAAI,GAAGc,CAAK;AACtB,QAAI5Q,aAAa;AACb,aAAOA,EAAE,KAAK,CAACA,MAAMshB,GAAmBthB,GAAG8X,GAASlH,GAAOf,CAAI,CAAC;AAEpE,IAAAyR,GAAmBthB,GAAG8X,GAASlH,GAAOf,CAAI;AAAA,EAE9C;AACJ,CAAC;AACD,SAASyR,GAAmBrc,GAAQ6S,GAASlH,GAAOf,GAAM;AACtD,MAAI,CAAC5K,GAAQ;AACT,UAAMsc,IAAO;AAAA,MACT,MAAM;AAAA,MACN,OAAA3Q;AAAA,MACA,MAAAf;AAAA;AAAA,MACA,MAAM,CAAC,GAAIA,EAAK,KAAK,IAAI,QAAQ,CAAA,CAAG;AAAA;AAAA,MACpC,UAAU,CAACA,EAAK,KAAK,IAAI;AAAA;AAAA,IAErC;AACQ,IAAIA,EAAK,KAAK,IAAI,WACd0R,EAAK,SAAS1R,EAAK,KAAK,IAAI,SAChCiI,EAAQ,OAAO,KAAK0J,GAAWD,CAAI,CAAC;AAAA,EACxC;AACJ;ACj6DA,IAAInR;AAGG,MAAMqR,GAAa;AAAA,EACtB,cAAc;AACV,SAAK,OAAO,oBAAI,QAAO,GACvB,KAAK,SAAS,oBAAI,IAAG;AAAA,EACzB;AAAA,EACA,IAAIlN,MAAWmN,GAAO;AAClB,UAAMC,IAAOD,EAAM,CAAC;AAEpB,QADA,KAAK,KAAK,IAAInN,GAAQoN,CAAI,GACtBA,KAAQ,OAAOA,KAAS,YAAY,QAAQA,GAAM;AAClD,UAAI,KAAK,OAAO,IAAIA,EAAK,EAAE;AACvB,cAAM,IAAI,MAAM,MAAMA,EAAK,EAAE,iCAAiC;AAElE,WAAK,OAAO,IAAIA,EAAK,IAAIpN,CAAM;AAAA,IACnC;AACA,WAAO;AAAA,EACX;AAAA,EACA,QAAQ;AACJ,gBAAK,OAAO,oBAAI,QAAO,GACvB,KAAK,SAAS,oBAAI,IAAG,GACd;AAAA,EACX;AAAA,EACA,OAAOA,GAAQ;AACX,UAAMoN,IAAO,KAAK,KAAK,IAAIpN,CAAM;AACjC,WAAIoN,KAAQ,OAAOA,KAAS,YAAY,QAAQA,KAC5C,KAAK,OAAO,OAAOA,EAAK,EAAE,GAE9B,KAAK,KAAK,OAAOpN,CAAM,GAChB;AAAA,EACX;AAAA,EACA,IAAIA,GAAQ;AAGR,UAAMsK,IAAItK,EAAO,KAAK;AACtB,QAAIsK,GAAG;AACH,YAAM+C,IAAK,EAAE,GAAI,KAAK,IAAI/C,CAAC,KAAK,CAAA,EAAG;AACnC,aAAO+C,EAAG;AACV,YAAM3hB,IAAI,EAAE,GAAG2hB,GAAI,GAAG,KAAK,KAAK,IAAIrN,CAAM,EAAC;AAC3C,aAAO,OAAO,KAAKtU,CAAC,EAAE,SAASA,IAAI;AAAA,IACvC;AACA,WAAO,KAAK,KAAK,IAAIsU,CAAM;AAAA,EAC/B;AAAA,EACA,IAAIA,GAAQ;AACR,WAAO,KAAK,KAAK,IAAIA,CAAM;AAAA,EAC/B;AACJ;AAEO,SAASsN,KAAW;AACvB,SAAO,IAAIJ,GAAY;AAC3B;AAAA,CACCrR,KAAK,YAAY,yBAAyBA,GAAG,uBAAuByR,GAAQ;AACtE,MAAMC,KAAiB,WAAW;ACjDlC,SAASC,GAAQC,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAQO,SAASuS,GAAOF,GAAOrS,GAAQ;AAClC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASwS,GAAMH,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASyS,GAAMJ,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS0S,GAAQL,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS2S,GAAQN,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS4S,GAAQP,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS6S,GAAKR,GAAOrS,GAAQ;AAChC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS4G,GAAOyL,GAAOrS,GAAQ;AAClC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS8S,GAAQT,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS+S,GAAMV,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASgT,GAAOX,GAAOrS,GAAQ;AAClC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASiT,GAAMZ,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASkT,GAAKb,GAAOrS,GAAQ;AAChC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASmT,GAAOd,GAAOrS,GAAQ;AAClC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASoT,GAAMf,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASqT,GAAMhB,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAUO,SAASsT,GAAQjB,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASuT,GAAQlB,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASwT,GAAQnB,GAAOrS,GAAQ;AACnC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAASyT,GAAWpB,GAAOrS,GAAQ;AACtC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS0T,GAAMrB,GAAOrS,GAAQ;AACjC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS2T,GAAKtB,GAAOrS,GAAQ;AAChC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAQO,SAAS4T,GAAavB,GAAOrS,GAAQ;AACxC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,IACX,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS6T,GAASxB,GAAOrS,GAAQ;AACpC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS8T,GAASzB,GAAOrS,GAAQ;AACpC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,IACX,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS+T,GAAa1B,GAAOrS,GAAQ;AACxC,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,GAAGC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAqPO,SAASgU,GAAWC,GAASjU,GAAQ;AAMxC,SALW,IAAIkU,GAA0B;AAAA,IACrC,OAAO;AAAA,IACP,GAAG5B,EAAqBtS,CAAM;AAAA,IAC9B,SAAAiU;AAAA,EACR,CAAK;AAEL;AACO,SAASE,GAAWC,GAASpU,GAAQ;AACxC,SAAO,IAAIqU,GAA0B;AAAA,IACjC,OAAO;AAAA,IACP,GAAG/B,EAAqBtS,CAAM;AAAA,IAC9B,SAAAoU;AAAA,EACR,CAAK;AACL;AACO,SAASE,GAAQ3L,GAAQ3I,GAAQ;AACpC,SAAO,IAAIuU,GAA6B;AAAA,IACpC,OAAO;AAAA,IACP,GAAGjC,EAAqBtS,CAAM;AAAA,IAC9B,QAAA2I;AAAA,EACR,CAAK;AACL;AACO,SAAS6L,GAAOjL,GAASvJ,GAAQ;AACpC,SAAO,IAAIyU,GAAsB;AAAA,IAC7B,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAGnC,EAAqBtS,CAAM;AAAA,IAC9B,SAAAuJ;AAAA,EACR,CAAK;AACL;AACO,SAASmL,GAAW1U,GAAQ;AAC/B,SAAO,IAAI2U,GAA0B;AAAA,IACjC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAGrC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS4U,GAAW5U,GAAQ;AAC/B,SAAO,IAAI6U,GAA0B;AAAA,IACjC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAGvC,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AACO,SAAS8U,GAAUC,GAAU/U,GAAQ;AACxC,SAAO,IAAIgV,GAAyB;AAAA,IAChC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAG1C,EAAqBtS,CAAM;AAAA,IAC9B,UAAA+U;AAAA,EACR,CAAK;AACL;AACO,SAASE,GAAYhjB,GAAQ+N,GAAQ;AACxC,SAAO,IAAIkV,GAA2B;AAAA,IAClC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAG5C,EAAqBtS,CAAM;AAAA,IAC9B,QAAA/N;AAAA,EACR,CAAK;AACL;AACO,SAASkjB,GAAUC,GAAQpV,GAAQ;AACtC,SAAO,IAAIqV,GAAyB;AAAA,IAChC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,GAAG/C,EAAqBtS,CAAM;AAAA,IAC9B,QAAAoV;AAAA,EACR,CAAK;AACL;AAgBO,SAASE,GAAWC,GAAI;AAC3B,SAAO,IAAIC,GAA0B;AAAA,IACjC,OAAO;AAAA,IACP,IAAAD;AAAA,EACR,CAAK;AACL;AAEO,SAASE,GAAWC,GAAM;AAC7B,SAAOJ,GAAW,CAACrU,MAAUA,EAAM,UAAUyU,CAAI,CAAC;AACtD;AAEO,SAASC,KAAQ;AACpB,SAAOL,GAAW,CAACrU,MAAUA,EAAM,KAAI,CAAE;AAC7C;AAEO,SAAS2U,KAAe;AAC3B,SAAON,GAAW,CAACrU,MAAUA,EAAM,YAAW,CAAE;AACpD;AAEO,SAAS4U,KAAe;AAC3B,SAAOP,GAAW,CAACrU,MAAUA,EAAM,YAAW,CAAE;AACpD;AAEO,SAAS6U,KAAW;AACvB,SAAOR,GAAW,CAACrU,MAAU8U,GAAa9U,CAAK,CAAC;AACpD;AACO,SAAS+U,GAAO3D,GAAO4D,GAASjW,GAAQ;AAC3C,SAAO,IAAIqS,EAAM;AAAA,IACb,MAAM;AAAA,IACN,SAAA4D;AAAA;AAAA;AAAA;AAAA,IAIA,GAAG3D,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAuMO,SAASkW,GAAQ7D,GAAO3R,GAAIoC,GAAS;AAOxC,SANe,IAAIuP,EAAM;AAAA,IACrB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,IAAI3R;AAAA,IACJ,GAAG4R,EAAqBxP,CAAO;AAAA,EACvC,CAAK;AAEL;AACO,SAASqT,GAAazV,GAAI;AAC7B,QAAMmJ,IAAKuM,GAAO,CAACjO,OACfA,EAAQ,WAAW,CAACxE,MAAU;AAC1B,QAAI,OAAOA,KAAU;AACjB,MAAAwE,EAAQ,OAAO,KAAK0J,GAAWlO,GAAOwE,EAAQ,OAAO0B,EAAG,KAAK,GAAG,CAAC;AAAA,SAEhE;AAED,YAAMwM,IAAS1S;AACf,MAAI0S,EAAO,UACPA,EAAO,WAAW,KACtBA,EAAO,SAASA,EAAO,OAAO,WAC9BA,EAAO,UAAUA,EAAO,QAAQlO,EAAQ,QACxCkO,EAAO,SAASA,EAAO,OAAOxM,IAC9BwM,EAAO,aAAaA,EAAO,WAAW,CAACxM,EAAG,KAAK,IAAI,QACnD1B,EAAQ,OAAO,KAAK0J,GAAWwE,CAAM,CAAC;AAAA,IAC1C;AAAA,EACJ,GACO3V,EAAGyH,EAAQ,OAAOA,CAAO,EACnC;AACD,SAAO0B;AACX;AACO,SAASuM,GAAO1V,GAAIV,GAAQ;AAC/B,QAAM6J,IAAK,IAAI6H,GAAiB;AAAA,IAC5B,OAAO;AAAA,IACP,GAAGY,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACD,SAAA6J,EAAG,KAAK,QAAQnJ,GACTmJ;AACX;ACn2BO,MAAMyM,KAA+BrO,gBAAAA,EAAkB,kBAAkB,CAAC/H,GAAMC,MAAQ;AAC3FoW,EAAAA,GAAqB,KAAKrW,GAAMC,CAAG,GACnCqW,EAAwB,KAAKtW,GAAMC,CAAG;AAC1C,CAAC;AACM,SAASuH,GAAS1H,GAAQ;AAC7B,SAAOyW,GAAkBH,IAAgBtW,CAAM;AACnD;AACO,MAAM0W,KAA2BzO,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnFwW,EAAAA,GAAiB,KAAKzW,GAAMC,CAAG,GAC/BqW,EAAwB,KAAKtW,GAAMC,CAAG;AAC1C,CAAC;AACM,SAASmH,GAAKtH,GAAQ;AACzB,SAAO4W,GAAcF,IAAY1W,CAAM;AAC3C;AACO,MAAM6W,KAA2B5O,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF2W,EAAAA,GAAiB,KAAK5W,GAAMC,CAAG,GAC/BqW,EAAwB,KAAKtW,GAAMC,CAAG;AAC1C,CAAC;AACM,SAASsH,GAAKzH,GAAQ;AACzB,SAAO+W,GAAcF,IAAY7W,CAAM;AAC3C;AACO,MAAMgX,KAA+B/O,gBAAAA,EAAkB,kBAAkB,CAAC/H,GAAMC,MAAQ;AAC3F8W,EAAAA,GAAqB,KAAK/W,GAAMC,CAAG,GACnCqW,EAAwB,KAAKtW,GAAMC,CAAG;AAC1C,CAAC;AACM,SAASoG,GAASvG,GAAQ;AAC7B,SAAOkX,GAAkBF,IAAgBhX,CAAM;AACnD;AC1BA,MAAMD,KAAc,CAACG,GAAMiD,MAAW;AAClC,EAAAW,GAAU,KAAK5D,GAAMiD,CAAM,GAC3BjD,EAAK,OAAO,YACZ,OAAO,iBAAiBA,GAAM;AAAA,IAC1B,QAAQ;AAAA,MACJ,OAAO,CAACgE,MAAWiT,GAAiBjX,GAAMgE,CAAM;AAAA;AAAA,IAE5D;AAAA,IACQ,SAAS;AAAA,MACL,OAAO,CAACA,MAAWkT,GAAkBlX,GAAMgE,CAAM;AAAA;AAAA,IAE7D;AAAA,IACQ,UAAU;AAAA,MACN,OAAO,CAACP,MAAU;AACd,QAAAzD,EAAK,OAAO,KAAKyD,CAAK,GACtBzD,EAAK,UAAU,KAAK,UAAUA,EAAK,QAAQ2D,IAA4B,CAAC;AAAA,MAC5E;AAAA;AAAA,IAEZ;AAAA,IACQ,WAAW;AAAA,MACP,OAAO,CAACV,MAAW;AACf,QAAAjD,EAAK,OAAO,KAAK,GAAGiD,CAAM,GAC1BjD,EAAK,UAAU,KAAK,UAAUA,EAAK,QAAQ2D,IAA4B,CAAC;AAAA,MAC5E;AAAA;AAAA,IAEZ;AAAA,IACQ,SAAS;AAAA,MACL,MAAM;AACF,eAAO3D,EAAK,OAAO,WAAW;AAAA,MAClC;AAAA;AAAA,IAEZ;AAAA,EACA,CAAK;AAML,GAEamX,KAAepP,EAAkB,YAAYlI,IAAa;AAAA,EACnE,QAAQ;AACZ,CAAC,GC3CYuX,KAAwBC,gBAAAA,GAAYF,EAAY,GAChDG,KAA6BC,gBAAAA,GAAiBJ,EAAY,GAC1DhS,KAA4BqS,gBAAAA,GAAgBL,EAAY,GACxD7R,KAAiCmS,gBAAAA,GAAqBN,EAAY,GAElEO,KAAyBC,gBAAAA,GAAaR,EAAY,GAClDS,KAAyBC,gBAAAA,GAAaV,EAAY,GAClDW,KAA8BC,gBAAAA,GAAkBZ,EAAY,GAC5Da,KAA8BC,gBAAAA,GAAkBd,EAAY,GAC5De,KAA6BC,gBAAAA,GAAiBhB,EAAY,GAC1DiB,KAA6BC,gBAAAA,GAAiBlB,EAAY,GAC1DmB,KAAkCC,gBAAAA,GAAsBpB,EAAY,GACpEqB,KAAkCC,gBAAAA,GAAsBtB,EAAY,GCTpEuB,KAAwB3Q,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,OACrE0Y,GAAc,KAAK3Y,GAAMC,CAAG,GAC5BD,EAAK,MAAMC,GACXD,EAAK,OAAOC,EAAI,MAChB,OAAO,eAAeD,GAAM,QAAQ,EAAE,OAAOC,GAAK,GAElDD,EAAK,QAAQ,IAAI0J,MACN1J,EAAK,MAAM4Y,GAAe3Y,GAAK;AAAA,EAClC,QAAQ;AAAA,IACJ,GAAIA,EAAI,UAAU;IAClB,GAAGyJ,EAAO,IAAI,CAACC,MAAO,OAAOA,KAAO,aAAa,EAAE,MAAM,EAAE,OAAOA,GAAI,KAAK,EAAE,OAAO,SAAQ,GAAI,UAAU,CAAA,EAAE,EAAE,IAAKA,CAAE;AAAA,EACrI;AACA,CAAS,CAAC,GAEN3J,EAAK,QAAQ,CAACC,GAAKH,MAAW+Y,GAAW7Y,GAAMC,GAAKH,CAAM,GAC1DE,EAAK,QAAQ,MAAMA,GACnBA,EAAK,YAAY,CAAC8Y,GAAKhH,OACnBgH,EAAI,IAAI9Y,GAAM8R,CAAI,GACX9R,KAGXA,EAAK,QAAQ,CAACiC,GAAMnC,MAAWiZ,GAAY/Y,GAAMiC,GAAMnC,GAAQ,EAAE,QAAQE,EAAK,MAAK,CAAE,GACrFA,EAAK,YAAY,CAACiC,GAAMnC,MAAWkZ,GAAgBhZ,GAAMiC,GAAMnC,CAAM,GACrEE,EAAK,aAAa,OAAOiC,GAAMnC,MAAWmZ,GAAiBjZ,GAAMiC,GAAMnC,GAAQ,EAAE,QAAQE,EAAK,WAAU,CAAE,GAC1GA,EAAK,iBAAiB,OAAOiC,GAAMnC,MAAWoZ,GAAqBlZ,GAAMiC,GAAMnC,CAAM,GACrFE,EAAK,MAAMA,EAAK,gBAEhBA,EAAK,SAAS,CAACiC,GAAMnC,MAAWqZ,GAAanZ,GAAMiC,GAAMnC,CAAM,GAC/DE,EAAK,SAAS,CAACiC,GAAMnC,MAAWsZ,GAAapZ,GAAMiC,GAAMnC,CAAM,GAC/DE,EAAK,cAAc,OAAOiC,GAAMnC,MAAWuZ,GAAkBrZ,GAAMiC,GAAMnC,CAAM,GAC/EE,EAAK,cAAc,OAAOiC,GAAMnC,MAAWwZ,GAAkBtZ,GAAMiC,GAAMnC,CAAM,GAC/EE,EAAK,aAAa,CAACiC,GAAMnC,MAAWyZ,GAAiBvZ,GAAMiC,GAAMnC,CAAM,GACvEE,EAAK,aAAa,CAACiC,GAAMnC,MAAW0Z,GAAiBxZ,GAAMiC,GAAMnC,CAAM,GACvEE,EAAK,kBAAkB,OAAOiC,GAAMnC,MAAW2Z,GAAsBzZ,GAAMiC,GAAMnC,CAAM,GACvFE,EAAK,kBAAkB,OAAOiC,GAAMnC,MAAW4Z,GAAsB1Z,GAAMiC,GAAMnC,CAAM,GAEvFE,EAAK,SAAS,CAAC2Z,GAAO7Z,MAAWE,EAAK,MAAM4Z,GAAOD,GAAO7Z,CAAM,CAAC,GACjEE,EAAK,cAAc,CAAC6Z,MAAe7Z,EAAK,MAAM8Z,GAAYD,CAAU,CAAC,GACrE7Z,EAAK,YAAY,CAACQ,MAAOR,EAAK,MAAM+Z,GAAiBvZ,CAAE,CAAC,GAExDR,EAAK,WAAW,MAAMga,GAASha,CAAI,GACnCA,EAAK,WAAW,MAAMia,GAASja,CAAI,GACnCA,EAAK,UAAU,MAAMga,GAASC,GAASja,CAAI,CAAC,GAC5CA,EAAK,cAAc,CAACF,MAAWoa,GAAYla,GAAMF,CAAM,GACvDE,EAAK,QAAQ,MAAMma,GAAMna,CAAI,GAC7BA,EAAK,KAAK,CAACoa,MAAQC,GAAM,CAACra,GAAMoa,CAAG,CAAC,GACpCpa,EAAK,MAAM,CAACoa,MAAQE,GAAata,GAAMoa,CAAG,GAC1Cpa,EAAK,YAAY,CAACqV,MAAOkF,GAAKva,GAAMwa,GAAUnF,CAAE,CAAC,GACjDrV,EAAK,UAAU,CAACC,MAAQwa,GAASza,GAAMC,CAAG,GAC1CD,EAAK,WAAW,CAACC,MAAQya,GAAS1a,GAAMC,CAAG,GAE3CD,EAAK,QAAQ,CAACF,MAAW6a,GAAO3a,GAAMF,CAAM,GAC5CE,EAAK,OAAO,CAAC4a,MAAWL,GAAKva,GAAM4a,CAAM,GACzC5a,EAAK,WAAW,MAAM6a,GAAS7a,CAAI,GAEnCA,EAAK,WAAW,CAACrE,MAAgB;AAC7B,QAAM+G,IAAK1C,EAAK,MAAK;AACrB8a,SAAAA,GAAoB,IAAIpY,GAAI,EAAE,aAAA/G,EAAW,CAAE,GACpC+G;AACX,GACA,OAAO,eAAe1C,GAAM,eAAe;AAAA,EACvC,MAAM;AACF,WAAO8a,GAAoB,IAAI9a,CAAI,GAAG;AAAA,EAC1C;AAAA,EACA,cAAc;AACtB,CAAK,GACDA,EAAK,OAAO,IAAI0D,MAAS;AACrB,MAAIA,EAAK,WAAW;AAChB,WAAOoX,GAAoB,IAAI9a,CAAI;AAEvC,QAAM0C,IAAK1C,EAAK,MAAK;AACrB8a,SAAAA,GAAoB,IAAIpY,GAAIgB,EAAK,CAAC,CAAC,GAC5BhB;AACX,GAEA1C,EAAK,aAAa,MAAMA,EAAK,UAAU,MAAS,EAAE,SAClDA,EAAK,aAAa,MAAMA,EAAK,UAAU,IAAI,EAAE,SACtCA,EACV,GAEY+a,KAA2BhT,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnF+a,EAAAA,GAAgB,KAAKhb,GAAMC,CAAG,GAC9ByY,GAAQ,KAAK1Y,GAAMC,CAAG;AACtB,QAAMuI,IAAMxI,EAAK,KAAK;AACtB,EAAAA,EAAK,SAASwI,EAAI,UAAU,MAC5BxI,EAAK,YAAYwI,EAAI,WAAW,MAChCxI,EAAK,YAAYwI,EAAI,WAAW,MAEhCxI,EAAK,QAAQ,IAAI0D,MAAS1D,EAAK,MAAMib,GAAa,GAAGvX,CAAI,CAAC,GAC1D1D,EAAK,WAAW,IAAI0D,MAAS1D,EAAK,MAAMkb,GAAgB,GAAGxX,CAAI,CAAC,GAChE1D,EAAK,aAAa,IAAI0D,MAAS1D,EAAK,MAAMmb,GAAkB,GAAGzX,CAAI,CAAC,GACpE1D,EAAK,WAAW,IAAI0D,MAAS1D,EAAK,MAAMob,GAAgB,GAAG1X,CAAI,CAAC,GAChE1D,EAAK,MAAM,IAAI0D,MAAS1D,EAAK,MAAMqb,GAAiB,GAAG3X,CAAI,CAAC,GAC5D1D,EAAK,MAAM,IAAI0D,MAAS1D,EAAK,MAAMsb,GAAiB,GAAG5X,CAAI,CAAC,GAC5D1D,EAAK,SAAS,IAAI0D,MAAS1D,EAAK,MAAMub,GAAc,GAAG7X,CAAI,CAAC,GAC5D1D,EAAK,WAAW,IAAI0D,MAAS1D,EAAK,MAAMqb,GAAiB,GAAG,GAAG3X,CAAI,CAAC,GACpE1D,EAAK,YAAY,CAACF,MAAWE,EAAK,MAAMwb,GAAiB1b,CAAM,CAAC,GAChEE,EAAK,YAAY,CAACF,MAAWE,EAAK,MAAMyb,GAAiB3b,CAAM,CAAC,GAEhEE,EAAK,OAAO,MAAMA,EAAK,MAAM0b,GAAW,CAAE,GAC1C1b,EAAK,YAAY,IAAI0D,MAAS1D,EAAK,MAAM2b,GAAiB,GAAGjY,CAAI,CAAC,GAClE1D,EAAK,cAAc,MAAMA,EAAK,MAAM4b,GAAkB,CAAE,GACxD5b,EAAK,cAAc,MAAMA,EAAK,MAAM6b,GAAkB,CAAE,GACxD7b,EAAK,UAAU,MAAMA,EAAK,MAAM8b,GAAc,CAAE;AACpD,CAAC,GACYC,KAA0BhU,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF+a,EAAAA,GAAgB,KAAKhb,GAAMC,CAAG,GAC9B8a,GAAW,KAAK/a,GAAMC,CAAG,GACzBD,EAAK,QAAQ,CAACF,MAAWE,EAAK,MAAMgc,GAAYC,IAAUnc,CAAM,CAAC,GACjEE,EAAK,MAAM,CAACF,MAAWE,EAAK,MAAMkc,GAAUC,IAAQrc,CAAM,CAAC,GAC3DE,EAAK,MAAM,CAACF,MAAWE,EAAK,MAAMoc,GAAUC,IAAQvc,CAAM,CAAC,GAC3DE,EAAK,QAAQ,CAACF,MAAWE,EAAK,MAAMsc,GAAYC,IAAUzc,CAAM,CAAC,GACjEE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAMwc,GAAWC,IAAS3c,CAAM,CAAC,GAC9DE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAM0c,GAAWC,IAAS7c,CAAM,CAAC,GAC9DE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAM4c,GAAaD,IAAS7c,CAAM,CAAC,GAClEE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAM6c,GAAaF,IAAS7c,CAAM,CAAC,GAClEE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAM8c,GAAaH,IAAS7c,CAAM,CAAC,GAClEE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAM+c,GAAaC,IAAWld,CAAM,CAAC,GACpEE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAMwc,GAAWC,IAAS3c,CAAM,CAAC,GAC9DE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAMid,GAAWC,IAASpd,CAAM,CAAC,GAC9DE,EAAK,QAAQ,CAACF,MAAWE,EAAK,MAAMmd,GAAYC,IAAUtd,CAAM,CAAC,GACjEE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAMqd,GAAWC,IAASxd,CAAM,CAAC,GAC9DE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAMud,GAAaC,IAAW1d,CAAM,CAAC,GACpEE,EAAK,YAAY,CAACF,MAAWE,EAAK,MAAMyd,GAAgBC,IAAc5d,CAAM,CAAC,GAC7EE,EAAK,MAAM,CAACF,MAAWE,EAAK,MAAM2d,GAAUC,IAAQ9d,CAAM,CAAC,GAC3DE,EAAK,QAAQ,CAACF,MAAWE,EAAK,MAAM6d,GAAYC,IAAUhe,CAAM,CAAC,GACjEE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAM+d,GAAWC,IAASle,CAAM,CAAC,GAC9DE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAMie,GAAWC,IAASpe,CAAM,CAAC,GAC9DE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAMme,GAAaC,IAAWte,CAAM,CAAC,GACpEE,EAAK,SAAS,CAACF,MAAWE,EAAK,MAAMqe,GAAaC,IAAWxe,CAAM,CAAC,GACpEE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAMue,GAAWC,IAAS1e,CAAM,CAAC,GAE9DE,EAAK,WAAW,CAACF,MAAWE,EAAK,MAAMye,GAAa3e,CAAM,CAAC,GAC3DE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAM0e,GAAS5e,CAAM,CAAC,GACnDE,EAAK,OAAO,CAACF,MAAWE,EAAK,MAAM2e,GAAS7e,CAAM,CAAC,GACnDE,EAAK,WAAW,CAACF,MAAWE,EAAK,MAAM4e,GAAa9e,CAAM,CAAC;AAC/D,CAAC;AACM,SAAS/J,GAAO+J,GAAQ;AAC3B,SAAO+e,GAAa9C,IAAWjc,CAAM;AACzC;AACO,MAAMgf,IAAgC/W,gBAAAA,EAAkB,mBAAmB,CAAC/H,GAAMC,MAAQ;AAC7F8e,EAAAA,EAAsB,KAAK/e,GAAMC,CAAG,GACpC8a,GAAW,KAAK/a,GAAMC,CAAG;AAC7B,CAAC,GACYgc,KAAyBlU,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAE/E+e,EAAAA,GAAe,KAAKhf,GAAMC,CAAG,GAC7B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYwc,KAAwB1U,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7Egf,EAAAA,GAAc,KAAKjf,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIY0c,KAAwB5U,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7Eif,EAAAA,GAAc,KAAKlf,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAeYkc,KAAuBpU,gBAAAA,EAAkB,UAAU,CAAC/H,GAAMC,MAAQ;AAE3Ekf,EAAAA,GAAa,KAAKnf,GAAMC,CAAG,GAC3B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAWYsc,KAAyBxU,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAE/Emf,EAAAA,GAAe,KAAKpf,GAAMC,CAAG,GAC7B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIY+c,KAA0BjV,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AAEjFof,EAAAA,GAAgB,KAAKrf,GAAMC,CAAG,GAC9B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYid,KAAwBnV,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7Eqf,EAAAA,GAAc,KAAKtf,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYmd,KAAyBrV,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAE/Esf,EAAAA,GAAe,KAAKvf,GAAMC,CAAG,GAC7B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYqd,KAAwBvV,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7Euf,EAAAA,GAAc,KAAKxf,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIY2d,KAAuB7V,gBAAAA,EAAkB,UAAU,CAAC/H,GAAMC,MAAQ;AAE3Ewf,EAAAA,GAAa,KAAKzf,GAAMC,CAAG,GAC3B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIY6d,KAAyB/V,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAE/Eyf,EAAAA,GAAe,KAAK1f,GAAMC,CAAG,GAC7B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIY+d,KAAwBjW,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7E0f,EAAAA,GAAc,KAAK3f,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAYYie,KAAwBnW,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7E2f,EAAAA,GAAc,KAAK5f,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYme,KAA0BrW,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF4f,EAAAA,GAAgB,KAAK7f,GAAMC,CAAG,GAC9B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYqe,KAA0BvW,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjF6f,EAAAA,GAAgB,KAAK9f,GAAMC,CAAG,GAC9B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYud,KAA0BzV,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AAEjF8f,EAAAA,GAAgB,KAAK/f,GAAMC,CAAG,GAC9B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYyd,KAA6B3V,gBAAAA,EAAkB,gBAAgB,CAAC/H,GAAMC,MAAQ;AAEvF+f,EAAAA,GAAmB,KAAKhgB,GAAMC,CAAG,GACjC6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYue,KAAwBzW,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAE7EggB,EAAAA,GAAc,KAAKjgB,GAAMC,CAAG,GAC5B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAIYoc,KAAuBtU,gBAAAA,EAAkB,UAAU,CAAC/H,GAAMC,MAAQ;AAE3EigB,EAAAA,GAAa,KAAKlgB,GAAMC,CAAG,GAC3B6e,EAAgB,KAAK9e,GAAMC,CAAG;AAClC,CAAC,GAuLYkgB,KAAyBpY,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/EmgB,EAAAA,GAAe,KAAKpgB,GAAMC,CAAG,GAC7ByY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,UAAUC,EAAI,SACnBD,EAAK,MAAM,CAACqgB,GAAWvgB,MAAWE,EAAK,MAAMqb,GAAiBgF,GAAWvgB,CAAM,CAAC,GAChFE,EAAK,WAAW,CAACF,MAAWE,EAAK,MAAMqb,GAAiB,GAAGvb,CAAM,CAAC,GAClEE,EAAK,MAAM,CAACsgB,GAAWxgB,MAAWE,EAAK,MAAMsb,GAAiBgF,GAAWxgB,CAAM,CAAC,GAChFE,EAAK,SAAS,CAACugB,GAAKzgB,MAAWE,EAAK,MAAMub,GAAcgF,GAAKzgB,CAAM,CAAC,GACpEE,EAAK,SAAS,MAAMA,EAAK;AAC7B,CAAC;AACM,SAASma,GAAMpE,GAASjW,GAAQ;AACnC,SAAO0gB,GAAYL,IAAUpK,GAASjW,CAAM;AAChD;AAwDO,MAAM2gB,KAAyB1Y,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/EygB,EAAAA,GAAe,KAAK1gB,GAAMC,CAAG,GAC7ByY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,UAAUC,EAAI;AACvB,CAAC;AACM,SAASoa,GAAMsG,GAAS7gB,GAAQ;AACnC,SAAO,IAAI2gB,GAAS;AAAA,IAChB,MAAM;AAAA,IACN,SAASE;AAAA,IACT,GAAGvO,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAcO,MAAM8gB,KAAgC7Y,gBAAAA,EAAkB,mBAAmB,CAAC/H,GAAMC,MAAQ;AAC7F4gB,EAAAA,GAAsB,KAAK7gB,GAAMC,CAAG,GACpCyY,GAAQ,KAAK1Y,GAAMC,CAAG;AAC1B,CAAC;AACM,SAASqa,GAAahL,GAAMC,GAAO;AACtC,SAAO,IAAIqR,GAAgB;AAAA,IACvB,MAAM;AAAA,IACN,MAAMtR;AAAA,IACN,OAAOC;AAAA,EACf,CAAK;AACL;AAsKO,MAAMuR,KAA6B/Y,gBAAAA,EAAkB,gBAAgB,CAAC/H,GAAMC,MAAQ;AACvF8gB,EAAAA,GAAmB,KAAK/gB,GAAMC,CAAG,GACjCyY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,KAAK,QAAQ,CAACiI,GAAStD,MAAS;AACjC,QAAIA,EAAK,cAAc;AACnB,YAAM,IAAI2L,GAAqBtQ,EAAK,YAAY,IAAI;AAExD,IAAAiI,EAAQ,WAAW,CAACxE,MAAU;AAC1B,UAAI,OAAOA,KAAU;AACjB,QAAAwE,EAAQ,OAAO,KAAK0J,GAAWlO,GAAOwE,EAAQ,OAAOhI,CAAG,CAAC;AAAA,WAExD;AAED,cAAMkW,IAAS1S;AACf,QAAI0S,EAAO,UACPA,EAAO,WAAW,KACtBA,EAAO,SAASA,EAAO,OAAO,WAC9BA,EAAO,UAAUA,EAAO,QAAQlO,EAAQ,QACxCkO,EAAO,SAASA,EAAO,OAAOnW,IAE9BiI,EAAQ,OAAO,KAAK0J,GAAWwE,CAAM,CAAC;AAAA,MAC1C;AAAA,IACJ;AACA,UAAM3F,IAASvQ,EAAI,UAAUgI,EAAQ,OAAOA,CAAO;AACnD,WAAIuI,aAAkB,UACXA,EAAO,KAAK,CAACA,OAChBvI,EAAQ,QAAQuI,GACTvI,EACV,KAELA,EAAQ,QAAQuI,GACTvI;AAAA,EACX;AACJ,CAAC;AACM,SAASuS,GAAUha,GAAI;AAC1B,SAAO,IAAIsgB,GAAa;AAAA,IACpB,MAAM;AAAA,IACN,WAAWtgB;AAAA,EACnB,CAAK;AACL;AACO,MAAMwgB,KAA4BjZ,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrFghB,EAAAA,GAAkB,KAAKjhB,GAAMC,CAAG,GAChCyY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI;AACtC,CAAC;AACM,SAASga,GAASkH,GAAW;AAChC,SAAO,IAAIF,GAAY;AAAA,IACnB,MAAM;AAAA,IACN,WAAWE;AAAA,EACnB,CAAK;AACL;AACO,MAAMC,KAA4BpZ,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrFmhB,EAAAA,GAAkB,KAAKphB,GAAMC,CAAG,GAChCyY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI;AACtC,CAAC;AACM,SAASia,GAASiH,GAAW;AAChC,SAAO,IAAIC,GAAY;AAAA,IACnB,MAAM;AAAA,IACN,WAAWD;AAAA,EACnB,CAAK;AACL;AAKO,MAAMG,KAA2BtZ,gBAAAA,EAAkB,cAAc,CAAC/H,GAAMC,MAAQ;AACnFqhB,EAAAA,GAAiB,KAAKthB,GAAMC,CAAG,GAC/ByY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI,WAClCA,EAAK,gBAAgBA,EAAK;AAC9B,CAAC;AACM,SAASya,GAASyG,GAAWK,GAAc;AAC9C,SAAO,IAAIF,GAAW;AAAA,IAClB,MAAM;AAAA,IACN,WAAWH;AAAA,IACX,IAAI,eAAe;AACf,aAAO,OAAOK,KAAiB,aAAaA,EAAY,IAAKC,GAAkBD,CAAY;AAAA,IAC/F;AAAA,EACR,CAAK;AACL;AACO,MAAME,KAA4B1Z,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrFyhB,EAAAA,GAAkB,KAAK1hB,GAAMC,CAAG,GAChCyY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI;AACtC,CAAC;AACM,SAAS0a,GAASwG,GAAWK,GAAc;AAC9C,SAAO,IAAIE,GAAY;AAAA,IACnB,MAAM;AAAA,IACN,WAAWP;AAAA,IACX,IAAI,eAAe;AACf,aAAO,OAAOK,KAAiB,aAAaA,EAAY,IAAKC,GAAkBD,CAAY;AAAA,IAC/F;AAAA,EACR,CAAK;AACL;AACO,MAAMI,KAA+B5Z,gBAAAA,EAAkB,kBAAkB,CAAC/H,GAAMC,MAAQ;AAC3F2hB,EAAAA,GAAqB,KAAK5hB,GAAMC,CAAG,GACnCyY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI;AACtC,CAAC;AACM,SAASka,GAAYgH,GAAWphB,GAAQ;AAC3C,SAAO,IAAI6hB,GAAe;AAAA,IACtB,MAAM;AAAA,IACN,WAAWT;AAAA,IACX,GAAG9O,EAAqBtS,CAAM;AAAA,EACtC,CAAK;AACL;AAYO,MAAM+hB,KAAyB9Z,gBAAAA,EAAkB,YAAY,CAAC/H,GAAMC,MAAQ;AAC/E6hB,EAAAA,GAAe,KAAK9hB,GAAMC,CAAG,GAC7ByY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI,WAClCA,EAAK,cAAcA,EAAK;AAC5B,CAAC;AACD,SAAS2a,GAAOuG,GAAWa,GAAY;AACnC,SAAO,IAAIF,GAAS;AAAA,IAChB,MAAM;AAAA,IACN,WAAWX;AAAA,IACX,YAAa,OAAOa,KAAe,aAAaA,IAAa,MAAMA;AAAA,EAC3E,CAAK;AACL;AASO,MAAMC,KAAwBja,gBAAAA,EAAkB,WAAW,CAAC/H,GAAMC,MAAQ;AAC7EgiB,EAAAA,GAAc,KAAKjiB,GAAMC,CAAG,GAC5ByY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,KAAKC,EAAI,IACdD,EAAK,MAAMC,EAAI;AACnB,CAAC;AACM,SAASsa,GAAK2H,GAAKC,GAAK;AAC3B,SAAO,IAAIH,GAAQ;AAAA,IACf,MAAM;AAAA,IACN,IAAIE;AAAA,IACJ,KAAKC;AAAA;AAAA,EAEb,CAAK;AACL;AAcO,MAAMC,KAA4Bra,gBAAAA,EAAkB,eAAe,CAAC/H,GAAMC,MAAQ;AACrFoiB,EAAAA,GAAkB,KAAKriB,GAAMC,CAAG,GAChCyY,GAAQ,KAAK1Y,GAAMC,CAAG,GACtBD,EAAK,SAAS,MAAMA,EAAK,KAAK,IAAI;AACtC,CAAC;AACM,SAAS6a,GAASqG,GAAW;AAChC,SAAO,IAAIkB,GAAY;AAAA,IACnB,MAAM;AAAA,IACN,WAAWlB;AAAA,EACnB,CAAK;AACL;AA8CO,MAAMoB,KAA0Bva,gBAAAA,EAAkB,aAAa,CAAC/H,GAAMC,MAAQ;AACjFsiB,EAAAA,GAAgB,KAAKviB,GAAMC,CAAG,GAC9ByY,GAAQ,KAAK1Y,GAAMC,CAAG;AAC1B,CAAC;AAaM,SAAS2Z,GAAOpZ,GAAIoC,IAAU,IAAI;AACrC,SAAO4f,GAAaF,IAAW9hB,GAAIoC,CAAO;AAC9C;AAEO,SAASkX,GAAYtZ,GAAI;AAC5B,SAAOiiB,GAAkBjiB,CAAE;AAC/B;ACt/BA,MAAAkiB,KAAe,EAAC,SAAU,GAAE,uBAAwB,EAAC,GAAI,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI,GAAE,GAAI,CAAC,MAAK,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,MAAK,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,MAAK,MAAK,MAAK,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,MAAK,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,MAAK,MAAK,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,IAAK,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,MAAK,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,MAAK,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,MAAK,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,MAAK,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,MAAK,MAAK,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE,KAAM,CAAC,IAAI,GAAE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","x_google_ignoreList":[0,1,5,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119]}